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.