PHP 4.3

4.7 Die Anweisung switch

Um lange Ketten von if..elseif..else Abfragen zu umgehen, gibt es eine Variante, die wir Ihnen an diesem Punkt vorstellen möchten: die sogenannte switch-Anweisung (switch = engl. Schalter, Weiche).

Eine switch-Anweisung arbeitet mit dem Wert eines Ausdrucks (z.B. einer Variablen, Funktion oder dem Ergebnis von Operatoren), der mittels case ("Fall") mit verschiedenen Werten verglichen wird. case verhält sich dabei ähnlich wie die Bedingungsprüfung einer if-Anweisung. Stimmt der Wert des Ausdrucks mit dem hinterlegten case-Wert überein, springt PHP zum entsprechen "Fall" und führt die Anweisungen aus.

Es ist möglich, einen default-Wert (default = Standardwert) zu bestimmen, dessen Anweisung ausgeführt wird, wenn keine der angegebenen case-Bedingungen mit dem Wert des Ausdrucks übereinstimmt.

Eine Besonderheit hat PHP hier von der Programmiersprache C übernommen: Ohne weitere Maßnahmen würden alle darauffolgenden Fälle ebenfalls ausgeführt werden. Um dies zu verhindern, setzen Sie nach der Abarbeitung des Falls eine sogenannte break-Anweisung. Damit werden alle weiteren zur switch-Anweisung gehörenden Anweisungen und Bedingungen ignoriert.

Nachfolgend sehen Sie den grundsätzlichen Aufbau einer switch-Anweisung.

Aufbau einer switch-Anweisung:
switch (Wert) {

  case Vergleichswert 1:
    Anweisung
  break;

..

  case Vergleichswert n:
    Anweisung
  break;

  default:
    Anweisung
  break;

}

Praktisches Beispiel:
<html>
<body>

<form action="bsp_416i.php" method="get">

Sie haben die Wahl zwischen<br>
<input type="radio" name="val" value=1>Obst<br>
<input type="radio" name="val" value=2>Gemüse<br>
<input type="radio" name="val" value=3>Käse<br>
<input type="radio" name="val" value=4>Wurst<br>
<input type="radio" name="val" value=5>Teigwaren<br>
<input type="radio" name="val" value=6>Gewürze<br>
<input type="submit">

</form>

<?php

  switch ($HTTP_GET_VARS["val"]) {
    case 1:
      echo "Sie haben Obst ausgewählt!";
      break;
    case 2:
      echo "Sie haben Gemüse ausgewählt!";
      break;
    case 3:
      echo "Sie haben Käse ausgewählt!";
      break;
    case 4:
      echo "Sie haben Wurst ausgewählt!";
      break;
    case 5:
      echo "Sie haben Teigwaren ausgewählt!";
      break;
    case 6:
      echo "Sie haben Gewürze ausgewählt!";
      break;
    default:
      echo "Sie haben bisher nichts ausgewählt!";
      break;
  }

?>

</body>
</html>

Kommentare (0)

Ihr Kommentar

Name