Gewöhnlich endet jede Anweisung mit einem Semikolon. Sie können mehrere Anweisungen aber auch zu einem Anweisungsblock zusammenfassen. Dann müssen Sie die einzelnen Anweisungen mit geschweiften Klammern {} umgeben.
Kontrollstruktur (if)
Mit dem if-Befehl können Sie Programmteile unter bestimmten Bedingungen explizit ausführen oder auch nicht ausführen lassen.
[php]
<?php
$a = 5;
$b = 8;
if ($a < $b)
echo"a ist kleiner als b";
?>
[/php]
Wollen Sie mehrere Anweisungen unterbringen, müssen Sie diese mit geschweiften Klammern umgeben.
[php]
<?php
$a = 5;
$b = 8;
if ($a < $b)
{
echo"a ist kleiner als b<br>";
echo"a ist $a<br>";
echo"b ist $b";
}
?>
[/php]
Kontrollstruktur (else)
Oft möchten Sie auch Anweisungen für den Fall einplanen, die nicht in den if-Bedingungen notiert sind.
Dazu ist else vorgesehen:
[php]
<?php
$a = 10;
$b = 8;
if($a < $b)
{
echo"a ist kleiner als b<br>";
echo"a ist $a<br>";
echo"b ist $b";
}
else
{
echo"a ist nicht kleiner b<br>";
echo"a ist $a<br>";
echo"b ist $b";
}
?>
[/php]
Kontrollstruktur (elseif)
Um mehrere Bedingungen abzufragen, ist es möglich, nach if beliebig viele elseif-Bedingungen einzufügen. Diese werden nur ausgeführt, wenn ihre Bedingungen wahr (TRUE) sind und alle vorherigen if- und elseif-Bedingungen falsch (FALSE) waren.
[php]
<?php
$a = 10;
$b = 10;
if($a < $b)
{
echo"a ist kleiner als b<br>";
echo"a ist $a<br>";
echo"b ist $b";
}
elseif($a == $b)
{
echo"a ist gleich b<br>";
echo"a und b sind 10";
}
elseif($a == 10)
{
echo"<br>a ist gleich 10";
}
else
{
echo"a ist nicht kleiner b<br>";
echo"a ist $a<br>";
echo"b ist $b";
}
?> [/php]
Kontrollstruktur (while)
While-Schleifen stellen die einfachste Form von Schleifen dar. Sie werden solange ausgeführt, wie ihre Bedingung wahr (TRUE) ist.
[php]<?php
$i = 0;
while($i <
{
echo"i ist $i<br>";
$i++;
}
?>
[/php]
Achten Sie darauf, dass die Bedingung irgendwann erfüllt ist, denn sonst läuft das Script ewig, wie im folgenden Beispiel.
Achtung:
Bei der Ausführung des kommenden PHP-Scriptes kann Ihr Rechner abstürzen! Sichern Sie also geöffnete Dateien in anderen Anwendungen.
[php]<?php
$i = $k = 0;
while($k <
{
echo"i ist $i<br>";
$i++;
}
?>
[/php]
Ihr Browser wird ewig laden (bis Sie “Abbrechen” drücken). Das liegt daran, dass $k im ganzen Script immer 0 bleibt, somit ist die Bedingung $k < 8 immer wahr.
Wenn Sie Ihren Browser etwas länger laden lassen (je nach System ca. 1 Minute) wird Ihnen etliche hunderttausend Mal "i ist ..." ausgeben, wobei i je Zeile um den Wert eins wächst. Der Rechner wird dadurch übrigens stark belastet und der Browser reagiert immer langsamer.
Kontrollstruktur (do…while)
Do…while-Schleifen sind fast mit while-Schleifen identisch. Der einzige Unterschied besteht darin, dass die Bedingung am Ende steht. Somit wird die Schleife in jedem Fall mindestens einmal durchlaufen. Bei while-Schleifen kann die Bedingung direkt am Anfang falsch (FALSE) sein, dann wird die Schleife erst gar nicht durchlaufen.
[php]<?php
$i = 0;
do
{
echo"i ist gleich $i";
}
while($i > 0);
?> [/php]
Kontrollstruktur (for)
Die im Folgenden behandelten For-Schleifen sind die bislang Kompliziertesten.
Eine for-Schleife ist immer folgendermaßen aufgebaut:
for(Parameter1; Parameter2; Parameter3) Anweisung
Der erste Parameter (Parameter1) ist der Startwert. Hier kann eine Anweisung platziert werden, die z. B. einen Startwert initialisiert.
Der zweite Parameter (Parameter2) ist eine Bedingung. Sie gibt an, wie lange die Schleife ausgeführt wird.
Der letzte Parameter (Parameter3) ist eine Anweisung, die die Änderung des Startwertes angibt.
Das nachstehende Script gibt die Zahlen 1-20 an den Browser aus. Natürlich wäre das ganze auch mit einer while-Schleife leicht zu bewerkstelligen.
[php]<?php
for($i = 1; $i <= 20; $i++)
{
echo"$i<br>";
}
?>
[/php]
Es können auch mehrere Anweisungen bei den Parametern angegeben werden. Diese müssen Sie durch Kommata trennen.
[php]
<?php
$k = 10;
for($i = 1; $i <= 10; $i++, $k–)
{
echo"i ist $i<br>k ist $k<br>";
}
?>
[/php]
Wie Sie sehen wird i größer, während k kleiner wird.
Kontrollstruktur (foreach)
Seit PHP 4 gibt es die sehr nützliche foreach-Funktion. Mit ihr lassen sich alle Elemente eines Arrays ausgeben. Das Gleiche lässt sich auch mit einer for-Schleife erledigen, allerdings muss dann die Anzahl der Elemente des Arrays bekannt sein.
[php]<?php
$Zahlen = array(1, 3, 6, 29);
foreach($Zahlen as $Wert)
{
echo"Wert: $Wert<br>";
}
?>
[/php]
Sie können das Gleiche auch mit dem Array-Schlüssel ausgeben:
[php]<?php
$Zahlen = array (1, 3, 6, 29);
$i = 0;
foreach($Zahlen as $Wert)
{
echo"$Zahlen[$i]: $Wert<br>";
$i++;
}
?> [/php]
Kontrollstruktur (break)
Mit break können Sie die Ausführung einer for-, switch- oder while-Schleife unterbrechen.
Dazu noch einmal das Beispiel der Endlosschleife:
[php]<?php
$i = $k = 0;
while($k <
{
if($i == 5)
{
break;
}
echo"i ist $i<br>";
$i++;
}
?>
[/php]
Wie Sie sehen, bricht die Ausgabe bei i gleich 5 ab, statt ewig zu laufen.
Kontrollstruktur (continue)
Mit continue können Sie den aktuellen Schleifendurchlauf unterbrechen und mit einem Neuen beginnen.
[php]<?php
$i = 0;
while($i <= 4)
{
echo"Hallo<br>";
$i++;
continue;
echo"Welt";
}
?>
[/php]
Sie sehen anhand der Ausgabe, dass das Wort “Welt” nie ausgegeben wird, da vorher der Durchlauf abgebrochen wurde. Hinter continue können Sie übrigens eine ganze Zahl notieren, die die Anzahl der zu überspringenden Schleifen beinhaltet (z. B. continue 4; – es werden 4 Durchläufe übersprungen).
Kontrollstruktur (switch)
Diese Struktur ersetzt eigentlich nur eine Reihe von if-Bedingungen, aber auf eine elegante Art und Weise. Wenn Sie eine Variable auf unterschiedliche Werte überprüfen und in Abhängigkeit vom Auswertungsergebnis verschiedene Programmteile ausführen wollen, sollten Sie diese Struktur einsetzen.
[php]<?php
$a = 2;
switch($a)
{
case 0:
echo"a ist 0";
break;
case 1:
echo"a ist 1";
break;
case 2:
echo"a ist 2";
break;
}
?>
[/php]
Beachten Sie, dass hinter jedem Fall ein break steht. Andernfalls würden bei $a = 0 alle Fälle durchlaufen, also auch case 1 und case 2. Wenn Sie sich diese Besonderheit nicht zu Nutze machen wollen, denken Sie an break. Des Weiteren können Sie noch einen weiteren Fall default definieren, der alle Fälle erfasst, die vorher nicht berücksichtigt wurden.
[php]
<?php
$a = 3;
switch($a)
{
case 0:
echo"a ist 0";
break;
case 1:
echo"a ist 1";
break;
case 2:
echo"a ist 2";
break;
default:
echo"a ist weder 0 noch 1 noch 2";
}
?>
[/php]