Lezioni di PHP - Lezione 5 - Variabili logiche in PHP
Ora sappiamo che in PHP esistono i numeri e le stringhe. Ma non è tutto: in questa lezione vedremo un altro tipo di variabili, chiamate variabili logiche. Si chiamano così perché vengono utilizzate per costruire la logica del nostro codice. Immagina una situazione in cui, a seconda delle condizioni, bisogna eseguire azioni diverse. Hai un bicchiere d’acqua da cui vuoi bere, ma se c’è poca acqua non ti disseterai, e se ce n’è troppa, quando inclinerai il bicchiere l’acqua traboccherà. Quindi devi aggiungere o togliere acqua in base a quanto è pieno il bicchiere.
Possiamo rappresentarlo così:
$quantità_acqua_nel_bicchiere = 100;
$poca_acqua = VERO;
SE $poca_acqua
ALLORA $quantità_acqua_nel_bicchiere = $quantità_acqua_nel_bicchiere + 20;
In questo esempio, la variabile $poca_acqua è una variabile logica, che può assumere solo due valori: TRUE (vero) o FALSE (falso). Niente di più, niente di meno.
Il codice sopra non è PHP valido; se lo inserisci in un file PHP, Apache mostrerà un errore. Ecco come dovrebbe apparire in PHP:
<?php
$water = 100;
$not_enough_water = TRUE;
if($not_enough_water){
$water = $water + 20;
}
?>
Parleremo dell’operatore condizionale if più avanti, ma per ora concentriamoci su TRUE e FALSE.
Spesso, al posto di TRUE e FALSE si usano 1 e 0.
Ma perché usare TRUE e FALSE invece dei numeri, complicandosi la vita?
Ricorda: una variabile intera occupa circa la metà della memoria rispetto a una variabile con numero decimale. Ebbene, una variabile logica (TRUE o FALSE) occupa circa 4 volte meno memoria di una variabile intera e 8 volte meno di una variabile decimale.
Perciò conviene usare TRUE o FALSE ogni volta che è possibile.
Forse ti stai chiedendo: “Ma che importanza ha questa differenza di memoria? Il mio server ha 8 GB di RAM!”. Facciamo un esempio: supponi che un sito utilizzi 1000 variabili intere, che potremmo sostituire con variabili logiche. Ogni volta che il sito viene caricato, queste variabili consumano 4 MB di memoria; con variabili logiche, solo 1 MB. Ora immagina che 100 utenti accedano contemporaneamente: 400 MB con interi, contro soli 100 MB con logiche. Una differenza di 300 MB! Certo, è un esempio semplificato, ma il principio è chiaro.
Vediamo ora come le variabili logiche si comportano quando vengono convertite in numeri.
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>Il risultato sarà 2. PHP converte automaticamente il valore logico in numero (TRUE diventa 1, FALSE diventa 0), quindi non devi preoccuparti della compatibilità tra tipi diversi.