PHP Schleifen gehören in jeder Programmiersprache zu den absoluten Grundlagen. Das gilt auch für PHP. Mit PHP Schleifen lassen sich mehrere Befehle wiederholt ausführen. Das erleichtert die PHP Programmierung erheblich, insbesondere beim Arbeiten mit Arrays und Datenbanken. PHP-Schleifen sind praktisch – und vor allem recht einfach zu verstehen. Die wichtigsten PHP Schleifen in PHP sind die for-, die while-, die do-while- und die foreach-Schleife.
PHP Programmierer buchen!
Die PHP for-Schleife ist die grundlegende Art einer PHP Schleife. Wer das Prinzip der PHP for-Schleife verstanden hat, wird auch mit den anderen PHP Schleifen in PHP keine Probleme haben. Ein einfaches Beispiel, das die Ziffern von 0 bis 9 ausgibt:
1 2 3 4 5 6 7 8 |
<?php for ($i = 0; $i < 10; $i++) { echo $i . " "; } // Ausgabe: 0 1 2 3 4 5 6 7 8 9 ?> |
1 2 3 4 5 |
for (Initialisierung; Test/Bedingung; Fortsetzung) { Anweisung 1; Anweisung 2; usw. } |
In unserem Beispiel gilt also Folgendes:
Innerhalb der geschweiften Klammern { … } stehen die Anweisungen. Die for-Schleife in diesem Beispiel arbeitet wie folgt:
Häufige Fehler bei der for-Schleife sind Verwechslungen von < und <= oder das Setzen eines Semikolons nach der geschweiften Klammer.
Vor allem bei der Arbeit mit Arrays zeigen Schleifen ihre Stärken. Hier ein Beispiel:
1 2 3 4 5 6 7 8 |
<?php $blumen = [ "Tulpen", "Rosen", "Nelken", ]; for ($i = 0; $i < count($blumen); $i++) { echo $blumen[$i] . " "; } // Ausgabe: Tulpen Rosen Nelken ?> |
Beim zweiten Wert im Schleifenkopf ist die Funktion count($blumen) sehr praktisch. Sie bewirkt, dass die Schleife unabhängig von der Anzahl der Elemente eines Arrays immer korrekt funktioniert.
Die Indizes eines Arrays beginnen bekanntlich bei 0. $blumen[0] ist hier also das erste Element: „Tulpen“.
Innerhalb der geschweiften Klammern lassen sich jetzt beliebige Anweisungen und Bedingungen setzen. Zum Beispiel:
1 2 3 4 5 6 7 8 9 |
<?php $blumen = [ "Tulpen", "Rosen", "Nelken", ]; for ($i = 0; $i < count($blumen); $i++) { if ($blumen[$i] != "Rosen") echo $blumen[$i] . " "; } // Ausgabe: Tulpen Nelken ?> |
Hier werden alle Elemente des Blumen-Arrays ausgegeben, die nicht den Wert „Rosen“ haben.
Warum kompliziert, wenn es auch einfacher geht? Bei Arrays zeigt die PHP foreach-Schleife erkennbare Stärken gegenüber der PHP for-Schleife. Am Beispiel der Blumen lässt sich dies verdeutlichen:
1 2 3 4 5 6 7 8 9 |
<?php $blumen = [ "Tulpen", "Rosen", "Nelken", ]; foreach ($blumen as $sorte) { echo $sorte . " "; } // Ausgabe: Tulpen Rosen Nelken ?> |
Die PHP foreach-Schleife ist die bequemste Möglichkeit, mit allen Elementen eines Arrays zu arbeiten (in Fachsprache: über die Elemente eines Arrays zu iterieren). Im Kopf der PHP Schleife wird einfach festgelegt, dass alle Elemente des Arrays $blumen über die PHP Variable $sorte angesprochen werden sollen. Damit erspart sich der PHP Programmierer viel Tipparbeit.
Die PHP foreach-Schleife bietet auch die Möglichkeit, auf den jeweiligen Index bei assoziativen Arrays zuzugreifen und diesen auf einfache Art auszugeben. Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $spieler["Lewandowski"] = 41; $spieler["Silva"] = 28; $spieler["Haaland"] = 27; foreach ($spieler as $index => $value) { echo "$index: $value Tore <br>"; } /* Ausgabe: Lewandowski: 41 Tore Silva: 28 Tore Haaland: 27 Tore */ ?> |
Eine weitere PHP Schleife in PHP ist die PHP while-Schleife. Sie bietet sich vor allem dann an, wenn am Anfang noch nicht feststeht, wann die Bedingung für einen Abbruch der PHP Schleife feststeht. Das ist zum Beispiel bei Zufallszahlen der Fall. Beispiel: Es soll so lange gewürfelt werden, bis die 6 geworfen wird. Ein solches Würfelspiel lässt sich perfekt mit der PHP while-Schleife simulieren:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $wuerfel = 0; while($wuerfel != 6){ $wuerfel = rand(1, 6); echo $wuerfel . " "; } // Ausgabe (zum Beispiel): 816 ?> |
Damit ist also garantiert, dass die Schleife so lange ausgeführt wird, bis die 6 erreicht ist, dass diese Zahl ausgegeben und dann abgebrochen wird.
Die do-while-Schleife
Die PHP do-while-Schleife ähnelt der while-Schleife. Der Unterschied besteht aber darin, dass die PHP do-while-Schleife auf jeden Fall mindestens einmal durchlaufen wird. Die PHP while-Bedingung steht nämlich nicht am Anfang, sondern am Ende dieser PHP Schleife. Sie wird eingeleitet mit dem unmissverständlichen „do“.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $wuerfel = 6; do { $wuerfel = rand(1, 6); } while ($wuerfel != 6); // Ausgabe: 6; ?> |
Hier wird der Würfel von Anfang an mit dem Wert 6 belegt. Bei einer while-Schleife würde nichts ausgegeben werden, weil die Bedingung schon im Kopf der PHP Schleife notiert ist.
Bei allen PHP Schleifen in PHP sind Verschachtelungen möglich. Ein Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $buchstaben = [ "a", "b", "c", ]; for($i = 0; $i < 2; $i++) { // äußere Schleife echo $i . " "; for($j = 0; $j < 3; $j++) { // innere Schleife echo $buchstaben[$j] . " "; } } // Ausgabe: 0 a b c 1 a b c ?> |
Die vier Schleifen in PHP haben jeweils Vor- und Nachteile. Für viele Aufgaben ist es letztlich zweitrangig, für welche Alternative sich der Programmierer entscheidet. Bei Arrays ist in der Regel die foreach-Schleife die einfachste Möglichkeit, um mit wenig Tipparbeit gute Resultate zu erzielen.