Kontrollstrukturen

Nachdem wir uns mit der Speicherung von einfachen Werten befasst haben möchte wir nun die if-Verzweigung kennen lernen. Oft möchte man eine Anweisung nur ausführen lassen, wenn eine bestimmte Bedingung eingetreten (also „wahr“ bzw. „true“) ist.

Hierfür gibt es die if-Verzweigung. Die Syntax sieht so aus:

<?php
if (Bedingung)
{
     Anweisung1;
     Anweisung2;
}
?>

Wenn die Bedingung wahr ist, wird Anweisung 1 und 2 ausgeführt, wenn nicht werden diese beiden Aktionen übersprungen.

Ein Beispiel:

$mein_gewicht = 75;
$dein_gewicht = 75;
if ($mein_gewicht == $dein_gewicht)
{
    echo "Du bist genauso schwer wie ich!";
}

(Zu beachten sind die doppelten „=“, sonst wird der Wert der einen Variable in die andere überschreiben wie in einer ganz normalen Zuweisung)

In diesem Falle würde der echo-Befehl ausgeführt werden, da beide Variablen den gleichen Inhalt haben, die Bedingung das die Variablen den gleichen Wert haben also wahr ist.

Was aber, wenn du nicht genauso schwer bist wie ich, bzw. die Bedingung nicht wahr („false“) ist? Hier kommt „else“ ins Spiel: Alles was innerhalb der geschweiften Klammern von else steht wird ausgeführt, wenn die Bedingung der vorhergegangenen if-Verzweigung nicht wahr ist.

$mein_gewicht = 75;
$dein_gewicht = 70;
if ($mein_gewicht == $dein_gewicht)
{
    echo "Du bist genauso schwer wie ich!";
}
else
{
    echo "Du bist nicht genauso schwer wie ich!";
}

In diesem Fall würde die Aktion des else-Blocks ausgeführt werden, die Ausgabe lautet also „Du bist nicht genauso schwer wie ich!“.

Die „==“-Zeichen werden Operator genannt. Es gibt auch andere mögliche Operatoren:

  • „<“ Kleiner als
  • „>“ Größer als
  • „⇐“ Kleiner gleich
  • „>=“ Größer gleich
  • „!=“ Ungleich

Noch ein Beispiel:

$mein_gewicht = 75;
$dein_gewicht = 70;
if ($mein_gewicht > $dein_gewicht)
{
    echo "Ich bin schwerer als du!";
}
else
{
    echo "Du bist entweder schwerer oder genauso schwer wie ich!";
}

Was aber wenn wir noch genauer auf Bedingungen reagieren wollen? In diesem Falle überprüfen, ob ich schwerer/leichter bin als du, oder ob ich genauso schwer bin? Eine Möglichkeit wäre:

$mein_gewicht = 75;
$dein_gewicht = 70;
if ($mein_gewicht > $dein_gewicht)
{
    echo "Ich bin schwerer als du!";
}
if ($mein_gewicht < $dein_gewicht)
{
    echo "Ich bin leichter als du!";
}
if ($mein_gewicht == $dein_gewicht)
{
    echo "Ich bin genauso schwer wie du!";
}

Wenn man sich diesen Code anguckt erscheint er aber unsinnig: Warum sollte der Interpreter die beiden letzten if-Bedingungen noch überprüfen, wenn er doch schon weiß das die erste richtig war, die anderen also nicht stimmen können? Hier kommt eine Verbindung von else und if ins Spiel: elseif!

$mein_gewicht = 75;
$dein_gewicht = 70;
if ($mein_gewicht > $dein_gewicht)
{
    echo "Ich bin schwerer als du!";
}
elseif ($mein_gewicht < $dein_gewicht)
{
    echo "Ich bin leichter als du!";
}
elseif ($mein_gewicht == $dein_gewicht)
{
    echo "Ich bin genauso schwer wie du!";
}
else
{
    echo "Dieser Fall kann niemals eintreten, da alle Möglichkeiten abgedeckt sind!";
}

In einem späteren Kapitel werden noch mehr Operatoren, wie z.B. „&&“/„AND“, mit dem man Bedingungen verknüpfen kann, vorgestellt. Als Grundlage reicht dies ersteinmal aus.


Startseite | Index || Zurück | Weiter