PHP EINFACH LERNEN – #03 if / else / elseif

PHP EINFACH LERNEN – #03 if / else / elseif

Im dritten Teil dieser Serie, soll es um if, else und elseif gehen. Sie ermöglichen dir Variablen und andere zu prüfen.

Ohne if, else und elseif wirst du in PHP kaum auskommen. Variablen zu prüfen ist oft sehr hilfreich, da du z.B. je nach Variablen-Inhalt etwas anderes ausgeben kannst.

Wie kann so eine Überprüfung aussehen? Hier ein kleines Beispiel, in welchem wir eine Variable auf eine Größe prüfen.

$variable = 10;

if($variable > 10){
    echo "Die Variable ist größer als 10";
}elseif($variable < 10){
    echo "Die Variable ist kleiner als 10";
}else{
    echo "Die Variable ist genau 10";
}

Sollten wir dieses Beispiel ausführen, würden wir als Ergebnis folgende Ausgabe erhalten: „Die Variable ist genau 10„.

Mit dem normalen IF fangen wir an. In den Klammern hinter dem IF prüfen wir etwas. In diesem Beispiel prüfen wir ob die Variable eine Zahl, welche größer als 10 ist, enthält. Da die Variable aber eine Zahl enthält welche genau 10 ist, wird ein unwahr oder auch false zurückgegeben und das was in den geschwungenen Klammern ist nicht ausgeführt. Als nächstes folgt ein ELSEIF welches so viel wie „Wenn nicht dann prüfe ob“ sagt. Hier prüfen wir dann weiter, da das erste IF ein Fehlschlag war. Hier wird dann geprüft ob die Zahl kleiner als 10 ist, was auch nicht stimmt. Das einfache ELSE prüft nun nichts mehr und wird dann ausgeführt wenn alle IF und danach ELSEIF ein false also unwahr zurückgegeben haben. Da die Variable weder größer noch kleiner als 10 ist, wird das else am Ende ausgeführt.

Wichtig anzumerken ist, dass so eine Abfrage nicht aus allen 3 Teilen bestehen muss. Einziger Teil welcher immer vorhanden sein muss, ist das IF. Danach können beliebig viele ELSEIF folgen. Es darf in der Aneinanderreihung nur ein ELSE geben welches sich am Ende der Kette befinden muss. Wörtlich könnte sowas dann nämlich so lauten: Wenn (if) Zahl größer als die andere Zahl ist dann mache …, wenn vorheriges nicht stimmt aber  (elseif) Zahl kleiner als die andere Zahl ist dann mache …, aber wenn alles vorherige nicht stimmt (else) dann mache …

Welche Zeichen sollte ich kennen zum prüfen von Variablen?

  • ==    „Ist ein Wert gleich wie der andere“ Bsp.: 5 == 6 gibt false zurück während 10 == 10 sowie false == 0 true zurück gibt.
  • !=    „Ist ein Wert nicht gleich wie der andere“ Bsp.: 5 != 6 gibt true zurück während 10 != 10 false zurück gibt
  • <    „Ist ein Wert kleiner als ein anderer“ Bsp.: 5 < 6 gibt true zurück während 10 < 10 false zurück gibt.
  • >    „Ist ein Wert größer als ein anderer“ Bsp.: 6 > 5 gibt true zurück während 10 > 10 false zurück gibt.
  • >=    „Ist ein Wert größer oder gleich einem anderen“ Bsp.: 10 >= 10 und 11 >= 10 geben true zurück während 1 >= 10 false zurück gibt.
  • <=    „Ist ein Wert größer oder gleich einem anderen“ Bsp.: 10 <= 10 und 10 <= 11 geben true zurück während 10 <= 1 false zurück gibt.
  • ===    „Prüft ob ein Wert exakt gleich ist“ Bsp.: true === true gibt true zurück währen false === true sowie false === 0 ein false zurück gibt.
  • !==     „Prüft ob ein exakter Wert nicht gleich ist“ Bsp.: true !== true gibt false zurück während false !== true ein true zurück gibt.

Wichtig: === und == sind nicht das gleiche! === prüft auf einen exakten Wert während == auf Gleichheit achtet. true kann auch als 1 dargestellt werden, daher würde true == 1 funktionieren während true === 1 nicht funktioniert. Auch "1" == 1 würde gehen jedoch "1" === 1 nicht.

Bei der Auflistung habe ich immer gesagt, dass entweder true oder false zurückgegeben werden. Das IF prüft am ende ob alle eingaben oder eine davon true also wahr sind.

Wie kann ich nun mehr als eine Variable prüfen?

Hierfür gibt es zwei Zeichen:

  • && – Übersetzt würde es wahrscheinlich so etwas wie „und“ heißen.
  • || – Übersetzt würde es wahrscheinlich so etwas wie „oder“ heißen.

Nun wieder ein kleines Beispiel für die Anwendung von „und“ oder „oder“.

$benutzername = "user";
$passwort = "0000";
// Hier soll nun geprüft werden ob der Nutzername UND das Passwort stimmen
if($benutzername == "user" && $passwort == "000"){
    echo "Benutzername und Passwort sind richtig";
}// Da eine der Eingaben oben nicht gestimmt haben wird nun hier geprüft ob wenigstens eine davon stimmt
elseif($benutzername == "user" || $passwort == "000"){
    echo "Nah dran, aber eine deiner Eingaben wahr falsch";
} // Mit dem definierten Benutzernamen und Passwort wird es nun nicht mehr das letzte else erreichen, dennoch würde dies bei zwei falschen Eingaben erreicht werden.
else{
    echo "Deine Eingaben wahren falsch";
}

Mit && können also zwei Werte auf ihre Richtigkeit geprüft werden. In diesem Beispiel also ob die Variable $benutzername gleich "user" ist UND die Variable $passwort gleich "000" ist. Stimmen beide Werte, wird das IF ausgegeben. Beim ELSEIF wird nun mit || geprüft ob eine der beiden Variablen stimmt. $benutzername ist gleich "user" ODER $passwort ist gleich "000". In diesem Fall würde das ODER (||) benutzt werden, da das Passwort nicht „000“ sonder „0000“ ist.

Was bestimmt schon aufgefallen ist, ist das nach dem if() eine geschwungene Klammer kommt. Diese muss auch wieder geschlossen werden. Zwischen diesen zwei Klammern ist dann der Inhalt welcher von PHP gelesen / interpretiert wird, wenn das IF ein WAHR (wenn alle Werte stimmen) zurück gibt.

Zusatz:

Sollte eine IF-Abfrage benötigt werden für eine einzige Variable, also wenn sich nur ein Wert einer Variable ändern soll, dann kannst du eine kürzere Version des IFs nutzen. Wie so etwas aussehen kann, siehst du im folgenden Beispiel:

$var = "Meine Variable";
$variable_aendern = true;

$var = ($variable_aendern === true) ? "Neuer Wert" : $var;

In diesem Beispiel ändern wir nun die Variable $var vom Wert "Meine Variable" zu "Neuer Wert", da $variable_aendern den Wert „true“ besitzt. Nach dem „?“ wird der Wert eingetragen welcher dann zugewiesen wird, wenn $variable_aendern gleich „true“ ist. Nach dem „:“ kommt dann der Wert, welcher zugewiesen wird, wenn die Variable nicht gleich „true“ ist.

Mehr Informationen zu Abfragen in PHP, findest du in der PHP Dokumentation.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.