switch può essere paragonato a più if con la stessa condizione: in pratica la stessa variabile viene confrontata con più valori e quando trova quello corrispondente esegue l'operazione.
switch (variabile) {
case condizione:
operazione
break;
}
Una volta che la variabile corrisponderà al valore della condizione il ciclo verrà interrotto utilizzando il controllore break. Vediamo un esempio:
switch ($mese) {
case 1:
echo "Siamo a Gennaio";
break;
case 2:
echo "Siamo a Febbraio";
break;
case 3:
echo "Siamo a Marzo";
break;
}
Viene analizzata la variabile $mese: nel caso sia uguale a 1 viene stampato "Siamo a Gennaio", nel caso sia uguale a 2 viene stampato "Siamo a Febbraio", etc.
Vediamo come si sarebbe povuto affrontare lo stesso problema utilizzando if al posto di switch:
if ($mese == 1) {
echo "Siamo a Gennaio";
}
if ($mese == 2) {
echo "Siamo a Febbraio";
}
if ($mese == 3) {
echo "Siamo a Marzo";
}
Quando la variabile non è uguale a nessuna condizione, si può utilizzare il blocco speciale default. Vediamo come:
switch ($mese) {
case 1:
echo "Siamo a Gennaio";
break;
default:
echo "Non siamo in Gennaio";
}
Viene analizzata la variabile $mese: nel caso sia uguale a 1 viene stampato "Siamo a Gennaio", in tutti gli altri casi viene stampato "Non siamo in Gennaio".