In PHP gibt es eine weitere Art der Kontrollstruktur. Diese switch-Anweisung kann aber nur auf Gleichheit (==) prüfen. Will man eine komplexe Abfrage machen, muss man auf die IF-Anweisung zurüch greifen.
Die switch-Anweisung wird mit dem Schlüsselwort switch eingeleitet, dem dann runde Klammern folgen, die den zu prüfenden Ausdruck enthalten. Danach folgt der Rumpf der switch-Anweisung in geschweiften Klammern.
<?php
switch($var) {
}
?>
Innerhalb des Rumpfes werden dann die zu vergleichenden Werte geschrieben. Diese Werte mit der Anweisung case eingeleitet, dann folgt der Wert und danach ein Doppelpunkt. Nach dem Doppelpunkt können dann Anweisungen stehen, die im Falle des Übereinstimmens ausgeführt werden sollen.
<?php
switch($var) {
case 5:
tuwas();
case 6:
tuwas2();
}
?>
PHP stoppt nicht automatisch bei nächsten case, d.h. wenn $var den Wert 5 enthält, wird sowohl tuwas() als auch tuwas2() ausgeführt. Bei 6 wird aber nur tuwas2() ausgeführt. Wenn das Verhalten nicht gewünscht ist, dann muss man noch die break-Anweisung notieren.
<?php
switch($var) {
case 5:
tuwas();
break;
case 6:
tuwas2();
break;
}
?>
Jetzt wird nur noch tuwas() ausgeführt, wenn $var den Wert 5 enthält.
Zusätzlich zu den case-Anweisungen kann man noch eine default-Anweisung notieren. Diese wird immer dann ausgeführt, wenn keine andere Bedingung erfüllt wurde. Diese default-Anweisung kann überall im Rumpf stehen. Es empfielt sich aber, sie immer ans Ende des Rumpfes zu schreiben.
<?php
switch($var) {
case 5:
tuwas();
break;
case 6:
tuwas2();
break;
default:
tuwas3();
break;
}
?>