|
|
Tutorials - Erste Schritte - Bedingungen - ...und ansonstenTutorials - Erste SchritteBedingungen: ...und ansonsten
Außer dem Wörtchen if und elseif gibt es auch noch das Wörtchen "else", englisch, frei übersetzt: ansonsten. Es funktioniert als "Auffangsbehältnis" - wenn in der if-Bedingung weder das if noch eines der elseif's "wahr" ergibt, wird der "else"-Befehl ausgeführt: <?php $S = date("H"); if ($S < 4) echo "Ab ins Bett !"; elseif ($S < 10) echo "Guten Morgen"; elseif ($S < 13) echo "Guten Tag"; elseif ($S < 14) echo "Mahlzeit"; elseif ($S < 18) echo "Guten Tag"; elseif ($S < 21) echo "Guten Abend"; else echo "Gute Nacht"; /* wenn bisher keine Bedingung zutraf, echo "Gute Nacht" */ ?> Im folgenden Beispiel sollen 2 Befehle ausgeführt werden, nämlich zuerst soll etwas per echo ausgegeben werden und dann soll einzweiter echo-Befehl ausgeführt werden. Aber auch nur dann, wenn die if-Bedingung stimmt. Wie werden beide echos nur bei wahrere Bedingung ausgeführt ? Ein if-Befehl bezieht sich ja nur direkt auf dem ihm folgenden Befehl. Lösung: die geschweiften Klammern { } (Zu erzeugen durch drücken AltGr + 7 und AltGr + 0 auf einer deutschen Tastatur.) Und das schöne: es ist egal, wo genau man sie macht - das ist reine optische Geschmackssache Hauptsache, sie umschließen die Befehle, die zu der Bedingung gehören sollen. <?php $S = date("H"); if ($S < 10) { echo "Guten Morgen"; echo "<br />wird ausgegeben von 0 bis 10 Uhr<br />"; } if ($S >= 10 and $S < 18) { echo "Guten Tag"; echo "<br />wird ausgegeben von 10 bis 18 Uhr<br />"; } if ($S >= 18) { echo "Guten Abend"; echo "<br />wird ausgegeben von 18 bis 24 Uhr<br />"; } ?> NEGATIVBEISPIEL ! <?php $S = date("H"); if ($S < 10) echo "Guten Morgen"; /* dieses echo steht noch im Banne des if's */ echo "<br />wird ausgegeben von 0 bis 10 Uhr<br />"; /* dieses ist absolut frei und wird sich ausgeben */ if ($S >= 10 and $S < 18) echo "Guten Tag"; /* dto. */ echo "<br />wird ausgegeben von 10 bis 18 Uhr<br />"; if ($S >= 18) echo "Guten Abend"; echo "<br />wird ausgegeben von 18 bis 24 Uhr<br />"; ?> Anders geschrieben erkennt man es auch leichter, was das Script nämlich macht: <?php $S = date("H"); if ($S < 10) echo "Guten Morgen"; /* der Bann etwas deutlicher dargestellt, da nun in ein und der selben Zeile */ echo "<br />wird ausgegeben von 0 bis 10 Uhr<br />"; /* und auch die Freiheit deutlicher dargestellt */ if ($S >= 10 and $S < 18) echo "Guten Tag"; echo "<br />wird ausgegeben von 10 bis 18 Uhr<br />"; if ($S >= 18) echo "Guten Abend"; echo "<br />wird ausgegeben von 18 bis 24 Uhr<br />"; ?> |