veröffentlicht am: 12.05.2020 zuletzt aktualisiert am: 06.02.2023
Fast jede moderne Programmiersprache verfügt über Schleifen, um ähnliche Operationen für eine Liste von Elementen auszuführen, so auch PHP. Daher möchte ich dir im folgenden Beitrag die verschiedenen Arten von Schleifen vorstellen.
Die for-Schleife ist besonders nützlich, wenn du zuvor schon weißt, wie oft der Code-Block darin ausgeführt werden soll.Diese Schleife nimmt folgende 3 Ausdrücke als Parameter:Zuerst wird ein Zähler initialisiert.Als zweites wird überprüft, ob dieser Zähler einem bestimmten Kriterium entspricht und zuletzt wird festgelegt, um wie viel der Wert des Zählers nach jedem Schleifendurchlauf verändert werden soll.Die einfachste Form einer solchen Schleife sieht so aus:
for ($i = 0; $i < 3; $i++) { echo "i: {$i} <br>"; }
i: 0 i: 1 i: 2
Natürlich sind auch noch andere Ausdrücke möglich.So kann zum Beispiel auch gefragt werden, ob $i größer oder gleich einem gewissen Wert ist.Auch der Initialisierungswert sowie der Ausdruck, mit dem $i erhöht wird, kann ein anderer sein.
for ($i = 1; $i <= 10; $i = $i * 2) { echo "i: {$i} <br>"; }
i: 1 i: 2 i: 4 i: 8
Mit dem Schlüsselwort continue kannst du dafür sorgen, dass alle folgenden Anweisungen gestoppt werden. Die Schleife wird danach für den nächsten Wert weiter ausgeführt.
for ($i = 1; $i <= 10; $i = $i * 2) { if ($i == 4) { continue; } echo "i: {$i} <br>"; }
i: 1 i: 2 i: 8
Das Schlüsselwort break hingegen bricht die Ausführung der Schleife vollständig ab.
for ($i = 1; $i <= 10; $i = $i * 2) { if ($i == 4) { break; } echo "i: {$i} <br>"; }
i: 1 i: 2
Die foreach-Schleife kann hingegen nur auf Arrays angewendet werden, wobei jedes Element des Arrays einzeln zurückgegeben wird und verarbeitet werden kann.
$array = [1, 2, 3]; foreach ($array as $wert) { echo "{$wert} <br>"; }
1 2 3
Es ist auch möglich, Arrays mit Schlüssel-Wert-Paaren zu erstellen und den Schlüssel sowie den Wert einzeln zu verarbeiten.
$array = [1=>"eins", 2=>"zwei", 3=>"drei"]; foreach ($array as $schluessel => $wert) { echo "{$schluessel}: {$wert} <br>"; }
1: eins 2: zwei 3: drei
Du kannst break und continue mit foreach genauso anwenden, wie mit for.
foreach ($array as $schluessel => $wert) { if ($wert == "zwei") { continue; } echo "{$schluessel}: {$wert} <br>"; }
1: eins 3: drei
Mit while kannst du eine Schleife definieren, die Anweisungen durchführt, solange die angegebene Bedingung true ist.
$i = 1; while($i <= 10) { $i *= 2; echo "$i".'<br>'; }
2 4 8 16
Im vorigen Beispiel wurden 2, 4, 8 und 16 ausgegeben, da $i jedes Mal verdoppelt wurde, bevor die Variable mit echo ausgegeben wurde.
Auch mit while kannst du break und continue wie gewohnt verwenden.
while($i <= 300) { $i *= 2; if ($i <= 100) { continue; } echo "$i".'<br>'; }
128 256 512
Mit list und each könntest du while auch wie eine foreach-Schleife verwenden.
$array = ['foo'=>'bar', 1=>2]; while(list($key, $value) = each($array)) { echo $key.': '.$value.'<br>'; }
foo: bar 1: 2
Du kannst die Konstruktion do-while genauso verwenden, wie while.Der entscheidende Unterschied ist, dass die definierten Anweisungen ausgeführt werden, bevor die Bedingung überprüft wird.
$i = 0; do { echo "i: $i".'<br>'; } while($i != 0);
i: 0
Du kannst break und continue auch in verschachtelten Schleifen verwenden.
for ($i = 1; $i < 3; $i++) { $x = $i * $i; echo "<br>i: $i<br>"; while ($x < 9) { $x += 2; if ($x == 5) { continue; } echo "$x, "; } }
i: 1 3, 7, 9, i: 2 6, 8, 10,
Im vorigen Beispiel wurde nur die Ausgabe von $x unterdrückt, wenn $x 5 entspricht. Wenn du hinter continue die Anzahl an Schleifen angibst, für die es angewendet werden soll, kannst du die äußeren Schleifen auch beeinflussen.Wenn continue von einer 2 gefolgt wäre, dann würde auch die for-Schleife übersprungen werden.
for (...) { while (...) { if (...) { continue 2; } } }
i: 1 3, i: 2 6, 8, 10,
Mit break 2 statt continue 2 wäre das Ergebnis entsprechend das Folgende:
i: 1 3,
In PHP gibt es verschiedene Arten von Schleifen.for, foreach, while und do-while haben wir gerade kennengelernt.Diese zu verwenden ist recht einfach, wenn man nur weiß, wann welche von Nutzen ist. Mit continue und break kannst du zusätzlich die Logik deiner Schleifen genauer abstimmen. Auf die beiden Schlüsselwörter können auch Zahlen folgen, die angeben, wie viele Schleifen betroffen sein sollen.
Wenn du noch Fragen, Anregungen, Lob und/oder Kritik hast, schreib mir doch bitte einen Kommentar!
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig