Salve a tutti,
sto facendo una funzione che mi imposti una stringa di default a partire da un valore di input. Poiché è un dettaglio nel mio programma volevo fare una funzione generica sia nel caso in cui il dato in input fosse una stringa sia che fosse un numero.
Ho scritto questa funzione:

function setDefaultOutputOfferte($fStrData,$fIntGendre){

if (strcmp($fStrData,DATABASE_DEFAULT_VALUE)==0){
$fStrData="Non";
}

if ($fStrData==null){
$fStrData="Non";

}

if ($fStrData==0){
$fStrData="Non";
}

if (empty($fStrData)){
$fStrData="Non";
}

if ($fIntGendre>0){
$fStrData.=" specificato";
}else{
$fStrData.=" specificata";
}

return $fStrData;
}

stranamente se metto una stringa entra nel controllo numero e udite, udite, mi dà vero!!!!
Una descrizione mi rende vero il confronto ==0!
Perché? Come risolvo il problema senza fare un controllo di tipo all'inizio? So che potrei farlo ma vorrei vedere se ci c'è un sistema diverso!
Grazie dell'aiuto!