PHP 4.3

4.7.1 Logische Kombinationen mit switch

Ebenso wie die logischen Kombinationen der if-Anweisungen, bieten switch-Anweisungen die Möglichkeit, eine Anweisung mehreren Fällen, d.h. mehreren Werten des in der switch-Anweisung ausgewerteten Ausdrucks, zuzuordnen:

Die veränderte Abfrage:
<html>

<body>

<form action="bsp_417i.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="radio" name="val" value="7">Haushaltswaren<br>
<input type=submit>

</form>



<?php

  switch ($HTTP_GET_VARS["val"]) {
    case 1:
    case 2:
    case 5:
    case 6:
        echo "Sie haben 'Vegetarische Lebensmittel' ausgewählt!";
        break;
    case 3:
    case 4:
        echo "Sie haben 'Nicht-vegetarische Lebensmittel' ausgewählt!";
        break;
    case 7:
        echo "Sie haben 'Sonstige Waren' ausgewählt!";
        break;
    default:
        echo "Sie haben nichts ausgewählt!";
        break;
  }

?>

</body>
</html>

Hier ist anzumerken, dass die in diesem Skript vorgestellte Verknüpfung etwas eingeschränkter ist als die if-elseif-Anweisung, da letztere ganze boolesche Ausdrücke verwerten kann. Die Bedingungen der einzelnen Zweige können völlig unabhängige Ausdrücke beinhalten. Die switch-Anweisung wertet einen einzigen Wert pro case von einem einzigen Ausdruck aus. Beispielsweise kann man Folgendes nicht in einer switch-Anweisung ausdrücken:

if ($a && $b) {
  Anweisungssequenz1;
} elseif ($c && $d) {
  Anweisungssequenz2;
}

Kommentare (0)

Ihr Kommentar

Name