PHP praxisorientiert lernen: Kontrollstrukturen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Wenn-Dann-(Sonst-)Konstrukt[Bearbeiten]

Bisher war aus der Verwendung von PHP noch kein Vorteil gegenüber dem statischen HTML ersichtlich. Der große Vorteil von PHP ist der, dass es möglich ist, bestimmte Anweisungen nur dann auszuführen, wenn eine vorher beschriebene Bedingung wahr oder falsch ist. Der Befehl hierfür lautet if und wird wie folgt verwendet:

Crystal Clear app terminal.png Code:

<?php
echo "Beispiel 1:<br />";

    $zahl = 5;
    if($zahl == 5)
    {
      echo "Die Zahl ist 5!";
    }

echo "Beispiel 2:<br />";

    $zahl = 4;
    if($zahl == 5)
    {
      echo "Die Zahl ist 5!";
    }
    else
    {
      echo "Die Zahl ist nicht 5!";
    }
?>

Crystal Clear app kscreensaver.png Output:

Beispiel 1:<br />
Die Zahl ist 5!

Beispiel 2:<br />
Die Zahl ist nicht 5!
Crystal 128 yast default.png Render:
Beispiel 1:
Die Zahl ist 5!

Beispiel 2:
Die Zahl ist nicht 5!

Hier können alle im vorherigen Kapitel beschriebenen Vergleichsoperatoren verwendet werden (hier gleich). Wenn die in den runden Klammern angegebene Bedingung wahr ist, werden die in den geschweiften Klammern befindlichen Anweisungen ausgeführt (hier die echo-Anweisung).

Das zweite Beispiel zeigt bereits eine Erweiterung der Anweisung, den else-Befehl. Wenn die Bedingung in den runden Klammern nicht wahr ist, geht der PHP-Interpreter über die in den geschweiften Klammern geschrieben Anweisungen hinweg und springt direkt in den else-Teil, der ebenso - in geschweiften Klammern - Anweisungen enthalten kann. Wird kein else-Teil angegeben, wird bei einer falschen Bedingung einfach nichts ausgeführt.

Switch-Konstrukt[Bearbeiten]

Wenn man viele Möglichkeiten hat, bietet sich ein weiteres Konstrukt an. Das sogenannte Switch-Konstrukt. Hierfür definiert man verschiedene cases (deutsch: Fälle). Je nachdem welcher Fall korrekt ist, wird der Code der danach folgt ausgeführt. Sollte die Variable die untersucht wird eine Zeichenkette sein (also aus mind. 1 nicht-Ziffer bestehend) muss diese in Anführungszeichen gesetzt werden ( z.b. case "test": ). Hinter jedem "case" kann ein "break;" stehen, muss aber nicht. Das "break;" bewirkt, dass wenn dieser Fall wahr war, die anderen Fälle nicht betrachtet werden. Manchmal kann es sinnvoll sein, die anderen Fälle weiter zu überprüfen. Dann lässt man das "break;" einfach weg. Um Code auszuführen, falls alle definierten Fälle nicht zutreffen (ähnlich dem "else") gibt es ein "default:".

Crystal Clear app terminal.png Code:

<?php
echo "Beispiel:<br />";

    $zahl = 5;
    switch($zahl)
    {
      case 5:
        echo "Die Zahl ist 5.";
      break;
      case 4:
        echo "Die Zahl ist 4.";
      break;
      default:
        echo "Die Zahl ist nicht 5 und nicht 4.";
      break;
    }
?>

Crystal Clear app kscreensaver.png Output:

Beispiel:<br />
Die Zahl ist 5.
Crystal 128 yast default.png Render:
Beispiel:
Die Zahl ist 5.