if und else
Kontrollstrukturen sind das Herzstück der Programmierung. Ohne sie wäre so gut wie garnichts möglich.
Angenommen, wir haben einen Login. Wir möchten überprüfen ob der Name iPod ist und das Passwort Schnitzel. Nach dem Absenden des „Login-Buttons“ brauchen wir also eine Kontrolle.
Wenn der Name = iPod und das Passwort = schnitzel
dann: Login
ansonsten: Kein Login
Das ganze sieht mit PHP natürlich etwas anders aus.
if($name == “iPod” && $passwort == “schnitzel”) {
// hier meine Anweisungen
} else {
// Was passieren soll, wenn Passwort und/oder Nutzername falsch…
}
Ok das war jetzt etwas viel auf einmal denke ich. Deswegen gehen wir mal Schritt für Schritt durch:
mit if wird die Abfrage eingeleitet. Innerhalb der Klammern steht die Bediengung.
Dann prüfen wir ob die Variable $name den Wert “iPod” hat. Dazu verwenden wir ==. Auch wenn man erwarten könnte, dass es ausreicht, zwei Werte mit = zu vergleichen:
Vergleiche immer mit ==
Mit = würdet ihr nämlich der Variable $name denn Wert “iPod” zuweisen.
Zwei Bediengungen verbindet ihr mit && das ist der UND-Operator. Wenn ihr einen ODER-Operatoren braucht nehm ihr || !
Das heißt:
if($name == “iPod” && $passwort == “schnitzel”) {
// Hier zu müssen BEIDE Bediengungen erfüllt sein!
}
if($name == “iPod” || $passwort == “schnitzel”) {
// Hierzu muss nur EINE der beiden Bediengungen erfüllt sein!
}
Innerhalb der geschweiften Klammern steht dann, was passieren soll, wenn die if-Bediengung erfüllt wurde (also true ist).
Was passiert, wenn die Bediengung nicht erfüllt wurde, kann man mit else abfangen und dann wieder in die geschweiften Klammern schreiben:
$name = “iPodNano”;
$passwort = “schnitzel”;
if($name == “iPod” && $passwort == “schnitzel”) {
// Der name istiPod und das Passwort ist Schnitzel
} else {
// die obere Bediengung wurde nicht erfüllt…
}
Andere Vergleichsoperatoren
Zwei Werte sind gleich: ==
Zwei Werte sind ungleich: !=
Größer als…: >
Kleiner als…: <
Kurzschreibweisen
Man kann bei Kontrollstrukturen auch die Schleifen weglassen um es übersichtlicher zu machen also zum Beispiel:
if($zahl1 > $zahl2) echo “Zahl1 ist größer als Zahl2″; else echo “Zahl1 ist nicht größer als Zahl2″;
Hier kann man allerdings nur einen Befehl ausgeben. Sobald mehr als ein Befehl ausgegeben wird, benötigt man geschweifte Klammern.
if($zahl1 == $zahl2) echo “Zahl 1 ist das selbe wie Zahl2″; echo “Diese Ausgabe erfolgt in jedem Fall, da sie nicht von der IF-Schleife abhängig ist.”;