21.6 Schleifen programmieren
Schleifendurchläufe sind die mit am häufigsten genutzten Sprachelemente. In nahezu jedem PHP-Skript sind Schleifendurchläufe enthalten, etwa zum Ausgeben mehrerer Datensätze einer Tabelle. Auch wenn Sie später mit Dreamweaver 8 Bereiche wiederholen, werden Schleifen verwendet. Schleifen laufen immer so lange durch, bis die Schleifenbedingung erfüllt ist.
Grundprinzip von Schleifen | Schleifen und später auch Bedingungen bauen sich nach folgendem Schema auf:
Listing 21.3 Prinzip einer Schleife
Schleifen- oder Bedingungstyp ( Bedingung ) { Auszuführender Codeblock bei erfüllter Bedingung }
21.6.1 for-Schleifen
Wir beginnen mit einer for-Schleife, die relativ komplex aufgebaut wird:
for ($x = 1; $x <= 10; $x++) { echo $x; }
Diese Schleife führt die Befehle in den geschweiften Klammern so lange aus, bis $x den Wert 10 erreicht hat und damit die Schleifenbedingung erfüllt ist. Geschweifte Klammern umschließen immer einen Codeblock, der bei einer erfüllten Bedingung abgearbeitet wird.
Datensätze ausgeben | Mit der Schleife aus Listing 21.4 kann man zum Beispiel zehn Datensätze ausgeben lassen. Über $x steht die Anzahl der durchlaufenen Schleifen als Variable zur Verfügung, mit der man zusätzlich arbeiten kann.
Die Schreibweise am Ende der Schleifenbedingung $x++ ist eine vereinfachte Schreibweise von $x = $x + 1.
++ bedeutet, dass der Wert um 1 inkrementiert, also erhöht wird. Würden wir ein – einsetzen, würde der Wert um 1 verringert.
Abbildung 21.3 Schematische Darstellung einer for-Schleife
21.6.2 while-Schleifen
Eine while-Schleife ist einfacher aufgebaut als eine for-Schleife:
Listing 21.5 Einfache while-Schleife
$x = 1; while ($x <= 10) { echo $x++; }
$x wird hier so lange ausgegeben, bis der Wert 10 erreicht ist. Der Wert der Variablen $x wird in der Schleife bei jedem Durchlauf um 1 erhöht.
Abbildung 21.4 Schematische Darstellung einer while-Schleife
21.6.3 do...while-Schleifen
Do...while-Schleifen sind den while-Schleifen sehr ähnlich:
Listing 21.6 do.while-Schleife
$x = 0; do { echo $x; } while ($x>0);
Der Unterschied liegt darin, dass bei diesen Schleifen das Erfüllen der Bedingungen nicht am Anfang der Schleife, sondern erst am Ende eines Durchlaufes überprüft wird. Somit kann man sicherstellen, dass die Schleife in jedem Fall mindestens einmal durchlaufen wird. Bei der while-Schleife kann es vorkommen, dass sie nie durchlaufen wird.
Abbildung 21.5 Schematische Darstellung einer do.while-Schleife
21.6.4 foreach-Schleifen
foreach-Schleifen ermöglichen die einfache Ausgabe von Arrays:
Listing 21.7 foreach-Schleife
foreach ($array as $ausgabe) { echo "aktueller Inhalt: $ausgabe"; }
Diese Schleife funktioniert ausschließlich mit Arrays. Inhalte des Arrays werden einer neuen Variablen, in unserem Fall $ausgabe, zugewiesen und ausgegeben. Beim nächsten Schleifendurchlauf erhöht sich der Index des Arrays um 1, und der nächste Wert des Arrays wird zugewiesen und ausgegeben. Das geschieht, solange es Inhalte im Array gibt.
Alle hier beschriebenen Schleifen können in nahezu beliebiger Tiefe verschachtelt werden.