Die switch / case-Anweisung bietet eine ähnliche Funktionalität wie die if / elseif-Anweisung. Es bietet jedoch eine elegantere Lösung und verfügt über die if / elseif-Alternative hinaus.
Eine switch / case-Anweisung ermöglicht den mehrfachen Vergleich einer Variablen. Betrachten Sie zum Beispiel die folgende if-Anweisung:
if ($ var == 1) {
Echo "Eins";
} elseif ($ var == 1) {
Echo "zwei";
} else {
Echo "Andere";
}
Dies ist identisch mit der folgenden switch / case-Anweisung:
Schalter ($ var) {
Fall 1:
Echo "Eins";
brechen;
Fall 2:
Echo "zwei";
brechen;
Standard:
Echo "Andere";
}
Wenn in diesem Beispiel $ var gleich 1 ist, ist die erste case-Anweisung true. und der zugehörige Code (Echo "One";) wird ausgeführt. Die resultierende Ausgabe wäre wie folgt:
Ein
Wenn $ var nicht mit 1 oder 2 übereinstimmt, wird der Code im Standardblock genauso ausgeführt wie der letzte else-Block in einer if / elseif / else-Anweisung.
Switch / Case-Anweisungen unterscheiden sich von if / elseif-Anweisungen hauptsächlich aufgrund der break-Anweisung. Ohne die break-Anweisungen im vorherigen Beispiel würde ein Wert von 1 für $ var mit dem ersten Fallblock übereinstimmen. Darüber hinaus wird jeder nachfolgende Fallblockcode ausgeführt, bis eine break-Anweisung gefunden wird, unabhängig davon, ob $ var mit den nachfolgenden case-Anweisungen übereinstimmt oder nicht. Die resultierende Ausgabe wäre wie folgt:
Ein
Zwei
Andere