Il costrutto if
è uno dei più importanti di ogni linguaggio, PHP incluso. Ci permetterà di eseguire delle operazioni solo se un tale condizione è vera, cioè TRUE
. Naturalmente, se la condizione risulta FALSE
, verrà ignorato.
<?php //se il contenuto di $a è maggiore di quello di $b ci sarà un output if ($a > $b) { echo "$a è maggiore di $b"; } ?>
Possiamo annidare infiniti costrutti if
.
<?php if ($a > $b) { if ($a > 10) { echo "$a è maggiore di $b e maggiore di 10"; } } ?>
Se, come abbiamo visto, delle istruzioni possono essere eseguite quando una tale condizione è TRUE
, è possibile eseguire altre istruzioni quando non lo è.
<?php $a = 10; $b = 20; if ($a > $b) { echo "$a è maggiore di $b"; } else { echo "$a è minore di $b"; } ?> Output: 10 è minore di 20
PHP offre la combinazione if-elseif
. Se la prima condizione if
è FALSE
, possiamo inserire un elseif
con una sua condizione, che se risulta TRUE
viene eseguita, altrimenti verrà eseguito else
. Sembra complicato, ma nella pratica non lo è.
<?php $a = 10; $b = 20; if ($a > $b) { echo "$a è maggiore di $b"; } elseif ($a == $b) { echo "$a è uguale a $b"; } else { echo "$a è minore di $b"; } ?>
È possibile usare molteplici elseif
, ricordiamoci soltanto di inserire un else
finale.
<?php $a = 10; $b = 20; if ($a >= $b) { echo "$a è maggiore o uguale a $b"; } elseif ($a == 7) { echo "$a è uguale a 7"; } elseif ($a == 8) { echo "$a è uguale a 8"; } else { echo "$a è minore di $b"; } ?>
Spesso ci capita di dover confrontare la stessa variabile con molti valori, per questo scopo la soluzione migliore è il costrutto switch
.
<?php $a = 0; switch($a) { case 0: echo "a è uguale a 0"; break; case 1: echo "a è uguale a 1"; break; case "luca": echo "a è luca"; break; } ?>
Attenzione: è fondamentale inserire l’istruzione break
, altrimenti, pur avendo trovato una espressione TRUE
(in questo caso $a
è uguale 0
), l’esecuzione continua fino alla fine e non viene bloccata!
Un caso speciale è default
, che viene eseguito se nessuna delle altre condizioni risulta TRUE
:
<?php $a = 10; switch($a) { case 0: echo "a è uguale a 0"; break; case 1: echo "a è uguale a 1"; break; case "luca": echo "a è luca"; break; default: echo "nessuna delle altre."; } ?>