4th Apr, 2008

Variabili booleane in PHP

1 Star2 Stars3 Stars4 Stars5 Stars (Nessun voto)
Loading ... Loading ...

Oggi, lavorando in PHP, mi sono imbattuto in uno strano comportamento: dichiarando una variabile booleana inizializzata a TRUE, stampata mostrava correttamente il valore 1. Se invece la variabile era inizializzata a FALSE, stampata non mostrava alcun valore, invece di stampare il valore 0 come (giustamente?) ci si aspetterebbe.

Dopo diverse quanto inutili ricerche (inizialmente credevo fosse un “problema” di CakePHP!) ho pensato di controllare il manuale di PHP, ed ecco svelato il mistero: è giusto così! 8O

Incredibile ma vero insomma, in PHP le variabili boolean se stampate valgono 1 se TRUE, niente se FALSE!

Sempre sulla pagina del manuale ho trovato questa interessante spiegazione, che riporto qui tradotta per voi in italiano:

E’ corretto che TRUE o FALSE non siano usate come costanti per i numeri 0 ed 1. Ma potrebbero esserci delle volte in cui è utile vedere il valore di un boolean come 1 oppure 0. Ecco come fare:

$var1 = TRUE;
$var2 = FALSE;

echo $var1; //Mostrerà il numero 1

echo $var2; //Non mostrerà nulla

Per fare in modo che venga mostrato il numero 0 per il valore FALSE, bisogna effettuare una conversione di tipo (cast):

echo (int)$var2; // Questo mostrerà il numero 0 per FALSE





Responses

Wow, che strano fenomeno ;-)

Leave a response

Your response:

Categories