Tipo boolean in PHP

Tipo boolean in PHP

Capita spesso nei programmi PHP, di dover memorizzare in una variabile se un determinato evento è accaduto o meno. Ad esempio se un utente ha effettuato l'accesso ad un'area riservata.

In questo caso, PHP mette a disposizione il tipo di dato boolean (o booleano). Una variabile di tipo booleano può avere solo due valori: true o false.

<?php
$isLogged = true;

if ($isLogged) {
    echo "Loggato";
} else {
    echo "Non loggato";
}
// Output: Loggato

Nell'esempio precedente abbiamo creato una variabile $isLogged di tipo booleano semplicemente assegnandole il valore true. Nelle righe da 4 a 8 abbiamo utilizzato l'istruzione if-elseche spiegheremo nel dettaglio quando parleremo di istruzioni condizionali.

In breve, nell'istruzione if  viene valutata l'espressione condizionale posta tra parentesi tonde: se questa è uguale a true, viene eseguita la prima porzione di codice contenuta tra parentesi graffe, altrimenti viene eseguita la seconda porzione subito dopo l'istruzione else.

Nota: true è una costante PHP, così come false. Per convenzione le costanti vengono indicate in maiuscolo, ma in questo caso si usa il minuscolo.

Tipi di dati interpretati come booleani

PHP ha un meccanismo interno di conversione dei tipi di dati diversi dal booleano.

Prendendo spunto dall'esempio precedente, assegnamo alla variabile $isLogged il valore di tipo integer 1 .

Nel momento in cui valuta l'espressione condizionale, l'interprete PHP converte il tipo di dato da integer a booleano (in questo casotrue) e viene stampato Loggato. Lo stesso succede quando valorizziamo la variabile con la stringa "Loggato".

<?php
$isLogged = 1;

if ($isLogged) {
    echo "Loggato\n";
} else {
    echo "Non loggato\n";
}
// Output: Loggato

$isLogged = "Loggato";

if ($isLogged) {
    echo "Loggato";
} else {
    echo "Non loggato";
}
// Output: Loggato

In questo esempio abbiamo usato la sequenza di escape \n per andare a capo. Vedremo questa e altre sequenze di escape quando parleremo del tipo string.

La tabella seguente mostra come vengono interpretati i valori non booleani nelle espressioni condizionali.

Valore Interpretazione
integer È false solo se uguale a zero 0, true altrimenti
string È false se la stringa è vuota "" oppure è uguale a "0", true altrimenti.
array È false solo se non contiene valori (array vuoto), true altrimenti.
null È sempre false.
float È false solo se uguale a 0.0, true altrimenti.
object È false se l'oggetto è null, true altrimenti.
Guida successiva: Tipo integer in PHP