Mit if Kontrollstrukturen kann das PHP Script auf bestimmte Umstände reagieren. Ohne Kontrollstrukturen würde der Code linear abgearbeitet werden und könnte nicht auf bestimmte Reaktionen, wie zum Beispiel ein nicht ausgefülltes input, reagieren.

if Struktur


if (/* Bedingung */) {
//Wenn die Bedingung erfüllt wurde wird der
//Code zwischen den beiden Klammern ausgeführt.
}

true und false

Die Anweisungen die zwischen den Klammern stehen werden nur dann ausgeführt wenn der Vergeleichoperator (==, ===, != usw) true zurück gibt. Andernfalls läuft das Skript einfach weiter ohne eine Ausgabe.

if

Mit if können Variablen überprüft werden:

<?php
//Definieren der Variable
$name = 'Karl';

//Die if Bedingung
if ($name == 'Karl') {
echo '<p>Der Name ist Karl</p>';
}
?>

Als erstes wird der Variable $name Karl zugewiesen, dann überprüft die if Schleife ob der Inhalt von $name Karl ist, da dies der Fall ist wird die Anweisung zwischen den beiden Klammern ausgeführt. In diesem Fall wird ein kleiner Text ausgegeben.

else

Der oben gezeigte Code führt aber nur etwas aus, wenn die Variable den Inhalt Karl hat. Möchte man aber auch reagieren, wenn die Variable nicht den Inhalt hat kann man else verwenden. Jetzt können wir das oben gezeigte Script mit else erweitern.

<?php
//Definieren der Variable
$name = 'Karl';

//Die if Bedingung
if ($name == 'Franz') {
echo '<p>Der Name ist  Franz</p>';
} else {
echo '<p>Der Name ist nicht Franz</p>';
}
?>

Wieder wird eine Variable mit einem Namen gefüllt und dann überprüft, da der Inhalt der Variable nicht Karl ist wird die else Anweisung ausgeführt, also der Text „Der Name ist nicht Karl“ ausgegeben.

elseif

Neben if und else gibt es auch noch elseif. elseif wird nur dann ausgeführt wenn noch keine andere if oder elseif Anweisung ausgeführt wird.

<?php
//Definieren der Variablen
$name = 'Karl';

//Die if Bedingung
if ($name == 'Franz') {
echo '<p>Der Name ist Franz</p>';
} elseif ($name == 'Karl') {
echo '<p>Der Name ist Karl</p>';
} else {
echo '<p>Der Name ist nicht Franz und nicht Karl</p>';
}
?>

Auch hier wird die Variable mit dem Namen Franz definiert und dann mit if auf den Inhalt überprüft, da der Name nicht Franz ist wird die Anweisung nicht ausgeführt. Weil die if Anweisung nicht ausgeführt wird, wird die Variable mit elseif wieder auf den Inhalt überprüft, da der Name wirklich Karl ist wird die elseif Anweisung ausgeführt und die else nicht.

Vergleichsoperatoren

Man kann auch noch andere Vergleichsoperatoren als == verwenden. Mit == überprüfen sie ob die Variable den Wert Karl hat. Sie können aber auch mit != sagen das die if oder elseif Anweisung nur dann ausgeführt wird, wenn der Inhalt nicht Karl ist.

<?php
//Definieren der Variable
$name = 'Karl';

//Die if Bedingung
if ($name != 'Franz') {
echo '<p>Der Name ist nicht Franz</p>';
}
?>

In diesem Fall würde die Anweisung ausgeführt werden, da die Variable nicht den Wert Franz hat.

Eine Liste aller Vergleichsoperatoren finden Sie hier.

Logische Operatoren

Mit logischen Operatoren können Sie gleich mehrere Variable oder andere Code Teile überprüfen.

<?php
//Definieren der Variablen
$karl = 'Karl';
$franz = 'Franz';

//Die if Bedingung
if ($karl == 'Karl' && $franz == 'Franz') {
echo '<p>Die Namen sind Karl und Franz</p>';
}
?>

Der Text wird nur dann ausgegeben, wenn beide Überprüfungen true zurück geben, sprich wenn der Wert von $karl Karl ist und wenn der Wert von $franz Franz ist.

Eine Liste aller logischen Operatoren finden Sie auf php.net.

Anwendungsbeispiel

Sie können mit if form’s auswerten. Dafür müssen Sie als erstes ein fieldset mit einem input erstellen. Die Daten sollen per POST übergeben werden und noch auf der gleichen Seite ausgewertet werden.

Der Code müsste dann so aussehen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
<title>Fieldset mit if auswerten</title>
</head>

<body>
<form action="index.php" method="post">
<fieldset>
<label for="name">Bitte geben Sie hier Ihren Namen ein</label><input type="text" name="name" id="name" />
</fieldset>
</form>
</body>
</html>

Nun kommt noch in die selbe Datei der PHP Code mit dem wir die Daten auswerten. Wir überprüfen mit einer if Schleife ob in das Input Karl oder Franz geschrieben wurde. Dafür wird der logische Operator || benötigt. Wenn einmal true zurück geliefert wird, wird die Anweisung ausgeführt. Beachten Sie bitte, dass dieser Kontaktformular nicht sicher ist. Die POST-Variablen können Schadcode beinhalten, den Sie vorher herausfiltern müssen.

Der Code müsste dann so aussehen:

<?php

if ($_POST['name'] == 'Karl' || $_POST['name']) {
echo '<p>Der Name ist' .$_POST['name'].'</p>';
} else {
echo '<p>Der Name ist nicht Karl und nicht Franz</p>';
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
<title>Fieldset mit if auswerten</title>
</head>

<body>
<form action=“index.php“ method=“post“>
<fieldset>
<label for=“name“>Bitte geben Sie hier Ihren Namen ein</label><input type=“text“ name=“name“ id=“name“ />
</fieldset>
</form>
</body>
</html>