Du liest:
Schleifen in PHP: for, foreach, while und do-while

Schleifen in PHP: for, foreach, while und do-while

von Patrick
12.05.2020
Jetzt PHP programmieren lernen

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.

1. Die PHP for Schleife

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

1.1. For-Schleifendurchlauf mit continue stoppen

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

1.2. For-Schleife mit break abbrechen

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

2. Die PHP foreach Schleife

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

2.1. foreach Schleifenablauf mit break und continue manipulieren

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

3. Die PHP while Schleife

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.

3.1. while Schleifenablauf mit break und continue manipulieren

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

3.2. Mit list und each die while-Schleife wie eine foreach-Schleife nutzen

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

4. Die PHP do-while Schleife

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

5. break und continue mit verschachtelten Schleifen

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,

6. Fazit – Schleifen in PHP

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!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren