PHP Tutorial – Schritt 8: If-Anweisung in PHP

Zurzeit haben wir in PHP noch nicht viel gemacht, was nicht auch Excel oder ein Taschenrechner könnte. Deshalb betreten wir nun das Gebiet der If-Anweisung. Die If-Anweisung ist ein grundlegendes Element in PHP. Ausgehend von einer bestimmten Situation oder einem Ergebnis kann man PHP somit mitteilen bestimmte Wege zu gehen oder andere Funktionen auszuführen.

|

If-Anweisung

Das Grundgerüst einer If-Anweisung sieht eigentlich immer gleich aus:

<?php

if(Bedingung)
   {
   Anweisung
   }

?>

|

In der ersten Zeile wird die Bedingung verankert, die geprüft werden soll:

if(Bedingung)

|

Ist diese TRUE (Wahr), so wird der Code ausgeführt, der in den zwei geschweiften Klammern ({) und (}) verankert ist, ausgeführt:

Achtung: Eine If-Anweisung wird nicht mit einem Semikolon versehen bzw. beendet!

if(Bedingung)
   {
   Anweisung
   }

|

Ist die Bedingung FALSE (falsch) so wird der Code in den beiden Klammern nicht durchlaufen!

Versuchen wir das mit einem Beispiel und unseren zwei bekannten Zahlen:

<?php

$zahl1 = 19;
$zahl2 = 79;


if($zahl1 == 19)
{
  echo "Die Zahl ist gleich 19";
}

?>

|

Die Ausgabe muss in diesem Fall wie folgt lauten: “Die Zahl ist gleich 19”

Warum? Durch die erste Zeile prüfen wir ob der Inhalt der Variable $zahl1 gleich ist (Vergleichsoperator Ist-Gleich (==)) wie 19:

if($zahl1 == 19)

|

Da dies zutrifft (TRUE oder wahr) wird der Code in den Schleifen ausgeführt:

echo "Die Zahl ist gleich 19";

|

Versuche nun einmal die Zeile auf folgendes zu ändern und prüfe das Ergebnis:

if($zahl2 == 19)

|

Die Ergebnisseite müsste leer sein. Die Variable $zahl2 ist nämlich nicht gleich 19 und somit ist kein weiterer Code zum ausführen vorhanden.

Was machen wir aber, wenn wir diese zweite Situation auch abfangen und mit ganz eigenem Code versehen möchten? Dafür gibt es die If-Else Anweisung:

|

If-Else Anweisung

Die If-Else Anweisung prüft eine Bedingung (wie bereits auch die If-Anweisung) und hat quasi einen Notfallplan falls die Bedingung nicht zutrifft:

<?php

if(Bedingung)
   {
   Anweisung 1
   }
else
   {
   Anweisung 2
   }

?>

|

Ist die Bedingung in der If-Klammer TRUE (wahr), so wird Anweisung 1 durchlaufen, ist sie jedoch FALSE (falsch), so wird Anweisung 2 durchlaufen.

<?php

$zahl1 = 19;
$zahl2 = 79;


if($zahl1 == 19)
{
  echo "Die Zahl ist gleich 19";
}
else
{
  echo "Die Zahl ist nicht gleich 19";
}

?>

|

Spiele das Skript mehrfach durch, du kannst wahlweise die Bedingung in der IF-Klammer von $zahl1 auf $zahl2, den Prüfwert von 19 auf eine andere Zahl, oder die Inhalte der Variable $zahl1 ganz am Anfang des Skripts ändern. Dann kontrolliere die Ausgabe.

|

Nun kann es aber hin und wieder vorkommen (*g*) dass man noch mehr Bedingungen abfangen möchte. Sprich ob Bedingung 1 zutrifft, oder Bedingung 2, oder Bedingung 3, usw. – Sofern das noch einigermassen überschaubar ist, kann man sich mit der ElseIf Abfrage helfen:

|

ElseIf Anweisung

Die ElseIf-Anweisung kann mehrere Bedingungen prüfen, wobei stets die oberste Bedingung Vorrang hat. Sprich, sobald eine Bedingung TRUE (wahr) ist, wird keine andere Bedingung mehr geprüft:

<?php

if(Bedingung 1)
{
  Anweisung 1
}
elseif (Bedingung 2)
{
  Anweisung 2
}
else
{
  Anweisung 3
}

?>

|

In einem kleinen Beispiel:

<?php

# Wir arbeiten nun nur mit einer Variable
# Ändere ihren Wert um die Auswirkungen zu kontrollieren
$zahl1 = 19;


if($zahl1 == 19)
{
  echo "Die Zahl ist gleich 19";
}
elseif($zahl1 == 79)
{
  echo "Die Zahl ist gleich 79";
}
else
{
  echo "Die Zahl ist weder 19 noch 79";
}

?>

|

Du kannst natürlich soviele ElseIf Anweisungen hineinpacken wie du willst, allerdings leidet darunter schnell einmal die Übersichtlichkeit. Deshalb gibt es da auch noch andere Methoden: Kurzform und Switch

|

Die Kurzformen

Die Kurzformen werden fast in keinem Tutorial richtig erwähnt. Man stößt aber spätestens bei großen Skripts oder auch bei professionellen, kleinen Skripts auf diese Schreibweise. Und wenn man sie nicht kennt, dann versteht man eigentlich auch gar nicht was da so passiert. Dabei ist das gar kein Geheimnis:

<?php

    (Bedingung) ? (Anweisung bei TRUE) : (Anweisung bei FALSE)

?>

|

Als kleines PHP Beispiel einmal in Langform:

<?php

#Hier kannst du die $alter Variable ändern
$alter = 17;

if($alter < 18)
{
  echo 'Du bist nicht volljährig';
}
else
{
  echo 'Du bist volljährig';
}

?>

|

Und nun als Kurzform:

<?php

#Hier kannst du die $alter Variable ändern
$alter = 17;

echo ($alter < 18) ? 'Du bist nicht volljährig' : 'Du bist volljährig';

?>

|

Dies kann man auch mit weiteren Prüfungen verknüpfen (If, Else if, Else):

<?php

#Hier kannst du die $alter Variable ändern
$alter = 17;

echo ($alter <= 17) ? 'Du bist nicht volljährig' : (($alter <= 20) ? 'Du bist zwar volljährig, aber zu jung' : "Du scheinst alt genug zu sein");

?>

|

Wichtig ist dabei, die nächste Prüfung in einer eigenen Klammer festzulegen:

(($alter <= 20) ? 'Du bist zwar volljährig, aber zu jung' : "Du scheinst alt genug zu sein");

Ich würde dir für das vertiefen dieser Übung empfehlen, einige Versuche auf  http://phpfiddle.org/ durchzuführen.