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 20PHP 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.";
}
?>