Deine Stimme gegen Armut - Banner

Knowledge Base » Verkürzte IF-Bedingungen

In diesem Tutorial geht es um den Syntax einer verkürzten IF-Bedingung mit dem sogenannten Ternary-Operator. Als Beispiel dafür dient folgendes Skript, mit dem man seine Besucher je nach Uhrzeit mit einem Guten Morgen, Guten Tag oder Guten Abend begrüßen kannn:

Code:  [ Download ] [ Erweitern
<?php
$morning = 'Guten Morgen';
$day = 'Guten Tag';
$evening = 'Guten Abend';

$welcome = (date('G') >= 0 && date('G') < 12) ? $morning : ((date('G') >= 12 && date('G') < 18) ? $day : $evening));
echo $welcome;
?>


Bei diesem Skript werden als erstes drei Variablen initialisiert und mit dem jeweiliigen Begrüßungstext gefüllt. Danach folgt eine verkürzte IF-Bedingung, die der Varaible $welcome zugewiesen wird. Mit echo wird die Varaible ausgegeben. Dies nur zum Verständnis. Kommen wir nun zu der Bedingung. Der Syntax sieht auf den ersten Blick vielleicht etwas kompliziert aus. Deswegen schauen wir uns an, wie die ausgeschriebene Bedingung aussehen würde:

Code:  [ Download ] [ Erweitern
if (date('G') >= 0 && date('G') < 12)
{
   $welcome = $morgning;
}
elseif (date('G') >= 12 && date('G') < 18)
{
   $welcome = $day;
}
else
{
   $welcome = $evening;
}


Als erstes wird überprüft, ob die akutelle Uhrzeit auf dem Server zwischen 0:00 Uhr und 12:00 Uhr liegt. In diesem Fall wird die Variable $morning ausgegeben, also Guten Morgen. Wenn dies nicht zutrift wird überprüft, ob die Uhrzeit zwischen 12:00 Uhr und 18:00 liegt. Ist die Bedingung erfüllt, so wird die Variable mit dem Inhalt Guten Tag ausgegeben. Ansonsten sehen die Besucher ihrer Webseite Guten Abend, also wird die Variable $evening ausgegeben.

Die verkürzte Schreibweise mit dem sogenannten Ternary-Operator funktioniert so:

Code:  [ Download ] [ Erweitern
Bedingung ? Rückgabe TRUE : Rückgabe FALSE;


Hierbei ist es wichtig, dass die Bedingung in Klammern steht. Ansonsten bekommen Sie eine Fehlermeldung. Weiterhin kann man in die Rückgabe auch noch eine weitere Bedingung schreiben, so wie in dem obigen Beispiel. Der Syntax dazu sieht wie folgt aus:

Code:  [ Download ] [ Erweitern
Bedingung ? Rückgabe TRUE : (Bedingung ? Rückgabe TRUE : Rückgabe FALSE);


Noch ein kleiner Tipp: Sollte bei der Verwendung ein Syntax-Error auftreten überprüft man als erstes, ob alle geöffneten Klammern auch wieder geschlossen wurden. Dies ist der häufigste Fehler bei der verkürzten Schreibweise.