L'istruzione switch / case offre funzionalità simili all'istruzione if / elseif; tuttavia, offre una soluzione più elegante e ha capacità oltre l'alternativa if / elseif.
Un'istruzione switch / case consente confronti multipli di un varaible. Ad esempio, considera la seguente istruzione if:
if ($ var == 1) {
echo "One";
} elseif ($ var == 1) {
echo "Due";
} altro {
echo "Altro";
}
Questo è identico all'istruzione switch / case che segue:
switch ($ var) {
caso 1:
echo "One";
rompere;
caso 2:
echo "Due";
rompere;
predefinito:
echo "Altro";
}
In questo esempio, se $ var è uguale a 1, la prima frase case sarà vera; e il codice associato (echo "One";) verrà eseguito. L'output risultante sarebbe il seguente:
Uno
Se $ var non corrisponde a 1 o 2, allora il codice nel blocco predefinito verrebbe eseguito proprio come il blocco else finale in un'istruzione if / elseif / else.
Le istruzioni switch / case differiscono da quelle if / elseif principalmente a causa dell'istruzione break. Senza le istruzioni break nell'esempio precedente, il valore 1 per $ var corrisponderebbe al primo blocco del caso. Inoltre, ogni successivo codice di blocco di casi verrà eseguito fino a quando non viene rilevata un'istruzione di interruzione, indipendentemente dal fatto che $ var corrisponda alle successive dichiarazioni di caso. L'output risultante sarebbe il seguente:
Uno
Due
Altro