PHP Einsteigerkurs - Grundlagen der PHP/MySQL Programmierung in 5 Tagen verstehen
ausgeben.
Bedingungen, Steuerung des Programmflusses
(IF/ELSE/ELSEIF)
Wir können bereits je nach Eingabe des Benutzers dynamischen Text ausgeben,
aber unser Script je nach Nutzereingabe unterschiedlich ablaufen lassen, können
wir noch nicht. In Programmiersprachen gibt es sehr viele Fälle, die wie folgt
geschrieben werden: Wenn der Nutzer A eingibt, mache dieses, andernfalls mache
jenes. In PHP wird dies auf Englisch und mit einigen Sonderzeichen geschrieben.
if ($eingabe == "A") {
do this;
} else {
do that;
}
if steht im Englischen für "falls", nachfolgend ein Codeteil
innerhalb von normalen Klammern(), innerhalb dieser die Bedingungen definiert
werden. Wenn diese erfüllt werden, dann wird der erste Programmblock
ausgeführt, welcher zwischen den zwei geschwungenen Klammern steht {} .
Trifft die Bedingungen innerhalb der Klammern () nicht zu, wird, falls er
vorhanden ist, der else-Block, ebenfalls von geschwungenen Klammern
eingegrenzt, ausgeführt. Danach wird unterhalb der geschwungenen Klammern mit
dem restlichen Script fortgefahren.
Man kann if und else auch verknüpfen, um mehrere Bedingungen hintereinander
abzufragen und noch einen else-Zweig anhängen, falls keine der vorherigen
Bedingungen eintrifft:
if ($eingabe == "A") {
do this;
} elseif ($eingabe == "A") {
do this;
} else {
do that;
}
Bedingungen werden mit verschiedenen Zeichen angegeben. Soll eine Variable
einen gewissen Wert haben, so muss man zwei Ist-Gleich-Zeichen == schreiben.
Würde man nur eines schreiben, würde PHP den Wert auf der rechten Seite des
Anführungszeichens in die Variable speichern.
Weitere mögliche Bedingungen werden wie folgt definiert:
== ist gleich
!= ist ungleich
> ist größer
< ist kleiner
>= ist größer oder gleich
<= ist kleiner oder gleich
Mehrere Bedingungen kann man mit einem doppelten Ampersand &&
verknüpfen. Ein doppelter senkrechter Strich würde eine Oder-Verknüpfung
bedeuten.
D.h., $a == 1 && $b == 1 würde heißen, dass sowohl die Variable $a
als auch die Variable $b den Wert enthalten müssen. Hätte eine Variable einen
anderen Wert, so würde, falls vorhanden, der else-Zweig ausgeführt werden.
$a == 1 || $b == 1 würde bedeuten, dass entweder die Variable $a, oder die
Variablbe $b oder beide Variablen den Wert 1 enthalten müssen. Innerhalb der
Klammer können auch noch weitere Klammern gesetzt werden, um die Bedingungen
weiter zu verschachteln:
if (($a == 1 && $b == 1) || $c == 1) würde bedeuten, dass entweder
$a und $b eine 1 beinhalten müssen oder $c eine 1 beinhalten muss.
Um den Nutzen der If-Else Funktion verständlicher zu machen, hier ein
Beispiel.
$username =
$_GET["username"];
$password =
$_GET["password"];
if ($username == "admin"
&& $password == "mystrongandsecretpassword") {
echo "Herzlich willkommen
Administrator!";
}
elseif ($username ==
"admin" && $password !=
"mystrongandsecretpassword") {
echo "Hallo Administrator,
leider hast du das Passwort falsch eingegeben!";
}
else {
echo "Fehler: Die eingegebenen
Logindaten waren falsch!";
}
?>
In diesem Script werden zuerst die Werte aus dem GET-Array in Variablen
gespeichert. Es wäre natürlich auch möglich, das GET-Array direkt in der
if-Funktion zu verwenden, aber das würde den Code komplizierter machen.
Hat der Besucher in der URL die korrekten Logininformationen übermittelt,
begrüßen wir ihn als Administrator, andernfalls überprüfen wir, ob er zumindest
den Usernamen richtig eingegeben hat. Falls Username und Passwort falsch sind,
geben wir eine Fehlermeldung aus.
Ausgabe bei Aufruf von
script.php?username=admin&password=mystrongandsecretpassword:
Herzlich willkommen Administrator!
Ausgabe bei Aufruf von
script.php?username=admin&password=xxx
Hallo Administrator, leider hast du das Passwort falsch eingegeben!
Ausgabe bei Aufruf von
script.php?username=abc&password=xxx
Fehler: Die eingegebenen Logindaten waren falsch!
Ist der Inhalt einer Variable egal und wir wollen nur überprüfen, ob eine
Variable überhaupt einen Inhalt hat, so können wir dies zum Beispiel wie folgt
bewerkstelligen:
$myTrueValue = "meinTest";
if ($myTrueValue) {
Weitere Kostenlose Bücher