Come abbiamo visto con if e le sue clausole è possibile scegliere tra piú alternative, ma quando queste diventano molte può essere scomodo usare ad esempio 20 if e elseif. Provate a pensare a quanto diventerebbe complicato voler visualizzare un output diverso per ogni faccia di un dado.

In questo caso la struttura switch diventerà la nostra piu cara amica.
La switch è una struttura che riceve in ingresso una variabile e manda in esecuzione uno o più frammenti di codice a seconda del valore di questa varibile.

Vediamo subito un esempio:

<?php
 
/* genera un numero a caso tra 1 e 6 */
 
$random = rand (1,6);
 
/* Stampa uno dei seguenti messaggi a seconda del numero generato */
 
switch ($random)
{
 case 1:
   echo 'uno';
   break;
 
 case 2:
   echo 'pippo';
   break;
 
 case 3:
   echo 'fiore';
   break;
 
 case 4:
   echo 'nano';
   break;
 
 default:
   echo 'elfo';
}
 
?>

È meglio chiarire subito il funzionamento della switch per evitare errori futuri.

Una volta che sa su che variabile fare i confronti, la switch incomincerà a cercare dall’alto il valore a cui corrisponde la variabile.

Una volta incontrato incomincia ad eseguire le varie istruzioni fino a che non viene chiusa la struttura. Se ad esempio il valore della variabile fosse ‘2’ tutti i blocchi inferiori al due sarebbero stati eseguiti compresi quelli per il 3, il 4 e il caso di default.

Quello che ho appena detto però non corrisponde esattamente a quanto succede nell’esempio qui sopra.
Al termine di ogni blocco c’è un break che chiude la struttura di controllo evitando l’esecuzione degli altri blocchi.

Da notare anche la clausola di default.
Questa clausola viene usata al termina della struttura switch per indicare tutti gli altri possibili valori che la variabile può assumere.

Come ultima cosa è bene sapere che le varie clausole di switch in PHP possono essere anche delle stringhe a differenza del C in cui è possibile usare solo valori numerici.

vicius