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:<input type="text" name="zahl1" />
<input type="text" name="zahl2" />
<input type="text" name="rechenart" />
<input type="submit" name="ausrechnen" value="Ausrechnen" />
</form>
<?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.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!';
}
?>
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.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!';
}
?>
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"






