Verzweigungen

in PHP · Autor: Sebastian Fuchs

Besonders bei der Verwendung von Formularen können Verzweigungen sehr hilfreich sein. Die Arbeitsweise von Verzweigungen werde ich anhand eines Taschenrechners zeigen.
Neben zwei <input>-Feldern für zwei Zahlen soll es noch ein drittes geben, in das man eine der vier Grundrechenarten eingeben kann.
Das Ergebnis soll sich dann nach der angegebenen Rechenart richten.
<form action="auswertung.php" method="post">
  <input type="text" name="zahl1" />
  <input type="text" name="zahl2" />
  <input type="text" name="rechenart" />
  <input type="submit" name="ausrechnen" value="Ausrechnen" />
</form>
Natürlich könnten wir jeden Fall mit einem extra if abdecken, also so:
<?php

if(isset($_POST['ausrechnen']))
{
  $zahl1     = $_POST['zahl1'];
  $zahl2     = $_POST['zahl2'];
  $rechenart = $_POST['rechenart'];

  if($rechenart == '+')
  {
    $ergebnis = $zahl1 + $zahl2;
  }
  else if($rechenart == '-')
  {
    [...]
  }
  [...]
}
else
{
  echo 'Das Formular wurde nicht abgeschickt!';
}

?>
Diese Variante wird spätestens bei mehr als zwei Optionen schreibintensiv und unnötig lang. Deshalb benutzen wir dafür ein switch(). Innerhalb der Klammern wird die Variable geschrieben, deren "Fälle" definiert werden sollen. In unserem Beispiel ist das die Variable aus dem Formularfeld für die Rechenart.
Innerhalb dieser Funktion können wir dann mit einem case alle Optionen abdecken.
Für den Fall, dass keine der Optionen zutrifft, kann eine default-Anweisung gemacht werden, wie z.B. eine Fehlermeldung.
Das ganze sieht dann so aus:
<?php

if(isset($_POST['ausrechnen']))
{
  $zahl1     = $_POST['zahl1'];
  $zahl2     = $_POST['zahl2'];
  $rechenart = $_POST['rechenart'];

  switch($rechenart)
  {
    case '+': $ergebnis = $zahl1 + $zahl2; break;
    case '-': $ergebnis = $zahl1 - $zahl2; break;
    case '*': $ergebnis = $zahl1 * $zahl2; break;
    case '/': $ergebnis = $zahl1 / $zahl2; break;
    default: echo 'Es wurde keine Rechenart gewählt!';
  }
}
else
{
  echo 'Das Formular wurde nicht abgeschickt!';
}

?>
Wichtig ist, jede Fallabfrage mit einem break; abzuschließen. Außerdem müssen Anführungsstriche gesetzt werden, wenn die einzelnen Fälle keine Zahlen sind, was bei den Rechenzeichen ja der Fall ist.
Das Resultat dieser Abfragen ist, dass das Ergebnis der Rechenart angepasst wird. Im Gegensatz zu den if-Abfragen benötigen wir hierbei für jeden Fall aber nur eine einzige Zeile.
Dieser Rechner war ein mögliches Beispiel, den Quelltext durch Verzweigungen zu vereinfachen. Beim Programmieren in PHP gibt es jedoch noch viele andere gute Anwendungsmöglichkeiten.
Ich hoffe dieses Tutorial konnte dir beim Verstehen von Verzweigungen helfen und dir ihre Arbeitsweise näher bringen.

· zurück zu "PHP Tutorials"

Lesezeichen

Diese Seite zu Mister Wong hinzufügen Diese Seite zu del.icio.us hinzufügen Diese Seite bei YiGG hinzufügen Diese Seite bei LinkARENA hinzufügen Diese Seite zu alltagz hinzufügen Diese Seite bei iGoogle hinzufügen