switch
 (PHP 4, PHP 5, PHP 7, PHP 8)
 
  Die switch-Anweisung entspricht in etwa einer
  Folge von if-Anweisungen die jeweils den gleichen
  Ausdruck prüfen. Es kommt oft vor, dass man dieselbe Variable (oder
  denselben Ausdruck) gegen viele verschiedene mögliche Werte prüfen
  und abhängig davon unterschiedlichen Code ausführen möchte. Genau
  hierfür wurde die switch-Anweisung eingeführt.
 
 Hinweis: 
  
   Beachten Sie, dass im Unterschied zu einigen anderen Sprachen die
   continue-Anweisung
   auch auf switch anwendbar ist und sich ähnlich wie break
   verhält. Wenn Sie ein switch innerhalb einer Schleife verwenden und
   mit dem nächsten Schleifendurchlauf beginnen wollen so müssen Sie in
   diesem Fall continue 2 angeben.
  
 
 Hinweis: 
  
   Beachten Sie auch, dass switch/case
   typschwache Vergleiche
   durchführt.
  
 
 
  Im folgenden Beispiel sind die beiden Codeblöcke gleichwertig.
  Der eine verwendet eine Reihe von if- und
  elseif-Anweisungen und der andere eine
  switch-Anweisung. Die Ausgabe ist in beiden Fällen
  dieselbe.
  
   Beispiel #1 switch-Anweisung
   
<?php
// This switch statement:
switch ($i) {
    case 0:
        echo "i ist gleich 0";
        break;
    case 1:
        echo "i ist gleich 1";
        break;
    case 2:
        echo "i ist gleich 2";
        break;
}
// Is equivalent to:
if ($i == 0) {
    echo "i ist gleich 0";
} elseif ($i == 1) {
    echo "i ist gleich 1";
} elseif ($i == 2) {
    echo "i ist gleich 2";
}
?>
    
   
 
 
  Um Fehler zu vermeiden ist es wichtig zu verstehen wie eine
  switch-Anweisung ausgeführt wird. Eine
  switch-Anweisung wird zeilenweise (genauer: Anweisung für
  Anweisung) ausgewertet. Zunächst einmal wird überhaupt kein Code ausgeführt.
  Erst wenn eine case-Anweisung gefunden wird, deren
  Ausdruck zu einem Wert evaluiert, der dem an switch
  übergebenen Ausdruck entspricht, beginnt PHP tatsächlich die folgenden
  Anweisungen auszuführen. Die Ausführung wird fortgesetzt bis das Ende
  der switch-Anweisung erreicht ist oder bis PHP
  bei der Ausführung auf eine break-Anweisung stößt.
  Wenn Sie am Ende der Anweisungsliste eines case kein
  break setzen, so wird die Ausführung mit dem nächsten
  case fortgesetzt, z. B.:
  
 
 
  Wenn in diesem Beispiel $i gleich 0 ist, führt PHP alle
  echo-Anweisungen aus! Ist $i gleich 1, führt PHP die
  letzten beiden echo-Anweisungen aus. Sie erreichen das erwartete Verhalten
  nur, wenn $i gleich 2 ist. Daher ist es wichtig
  break-Anweisungen nicht zu vergessen (auch wenn Sie
  gelegentlich absichtlich darauf verzichten werden, diese unter bestimmten
  Bedingungen anzugeben).
 
 
  In einer switch-Anweisung wird die Bedingung nur einmal
  ausgewertet und das Ergebnis mit jeder case-Anweisung
  verglichen. In einer elseif-Anweisung wird die Bedingung
  erneut ausgewertet. Wenn Ihre Bedingung komplizierter ist als ein einfacher
  Vergleich, und/oder sich in einer dichten Schleife befindet, kann ein
  switch schneller sein.
 
 
  Die Anweisungsliste eines case kann ebenso leer sein, was einfach die
  Kontrolle an die Anweisungsliste des nächsten case übergibt.
  
 
 
  Ein Sonderfall ist die default-Klausel. Diese fängt alles
  ab, was nicht durch eine der anderen case-Klauseln behandelt wurde. Zum
  Beispiel:
  
  Hinweis: 
   
    Mehrere default case-Anweisungen erzeugen einen
    E_COMPILE_ERROR-Fehler.
   
  
  Hinweis: 
   
    Technisch gesehen kann der default-Case an einer
    beliebigen Stelle stehen. Er wird nur verwendet, wenn kein anderer Fall
    passt. Nach gängiger Praxis ist es jedoch am besten, ihn als letzten Punkt
    ans Ende zu setzen.
   
  
 
 
  Wenn kein case-Zweig passt und es keinen
  default-Zweig gibt, dann wird kein Code ausgeführt,
  genauso wie wenn keine if-Anweisung true wäre.
 
 
  Ein case-Wert kann als Ausdruck angegeben werden. Dieser Ausdruck wird
  jedoch für sich allein ausgewertet und dann nur einfach mit dem switch-Wert
  verglichen. Das bedeutet, dass er nicht für komplexe Auswertungen des
  switch-Wertes verwendet werden kann. Zum Beispiel:
  
 
 
  Für komplexere Vergleiche kann der Wert true als Switch-Wert verwendet
  werden. Statt switch können alternativ auch
  if-else-Blöcke verwendet werden.
  
 
 
  Die alternative Syntax für Kontrollstrukturen wird von switch-Anweisungen
  unterstützt. Weitere Information entnehmen Sie dem Abschnitt
  Alternative Syntax für Kontrollstrukturen.
  
 
 
  Es ist möglich, ein Semikolon anstelle eines Doppelpunkts nach einem case zu
  verwenden, wie: