Schleifen

Verschiedene Vorgänge benötigen mehrere Durchgänge, bis ein bestimmter Zustand erreicht ist.

Dazu werden Schleifen benötigt – in PHP gibt es 3 typische Schleifen:

  • while
  • do..while
  • for

Im ersten Beispiel wird die Schleife 10-mal durchlaufen und jeweils die Nummer ausgegeben.

while - Schleife

PHP-Quellcode: Beispiel while-Schleife
<?php
$i = 1;
while ($i <= 10)
{
    echo $i;         // es wird $i ausgegeben
    echo "<br>"; 
    $i++;            // Wert wird um 1 erhöht
}
?>

Durch das while wird die Schleife solange durchlaufen, bis die Bedingung erfüllt ist – im Beispiel solange $i kleiner als 11 ist.

1
2
3
4
5
6
7
8
9
10

Die Schleife muss nicht unbedingt durchlaufen werden – das ist der Fall, wenn $i bereits am Anfang größer als der in der Bedingung gestellte Wert (im Beispiel 10) ist. Probieren Sie folgendes Programm aus:

PHP-Quellcode: Beispiel nicht durchlaufene while-Schleife
<?php
$i = 11;
while ($i <= 10)
{
    echo $i;         // es wird $i ausgegeben
    echo "<br>";
    $i++;            // Wert wird um 1 erhöht
}
?>

Als Ausgabe wird ein leerer Bildschirm erscheinen.

do ... while - Kontrolle der Bedingung am Ende

Wenn die Schleife auf jeden Fall einmal durchlaufen werden soll, dann ist die Konstruktion do...while die Richtige.

PHP-Quellcode: Beispiel do-while-Schleife
<?php
$i = 11;
do
{
    echo $i;         // es wird $i ausgegeben
    echo "<br>"; 
    $i++;            // Wert wird um 1 erhöht
} while ($i <= 10);
?>

Als Ergebnis erhalten Sie die Ausgabe 11 und die Schleife bricht ab, da die Bedingung am Ende der Schleife erfüllt ist. Da die Abfrage erst am Ende kommt, wird die Schleife mindestens einmal durchlaufen.

11

do ... while Schleifen können auch mittendrin unterbrochen werden, wenn Bedingungen erfüllt sind. Dazu gibt es den break-Befehl. Unser Bespiel von oben wird erweitert:

PHP-Quellcode: do-while-Schleife mit Abbruch-Meldung
<?php
$i = 11;
do
{
    if ( $i > 10 )
    {
        echo "i ist bereits größer als 10";
        break;
    }
 
    echo $i;         // es wird $i ausgegeben
    echo "<br>"; 
    $i++;            // Wert wird um 1 erhöht
} while ($i <= 10);
?>

i ist bereits größer als 10

for-Schleife

Derselbe Vorgang als for-Schleife.

PHP-Quellcode: Beispiel for-Schleife
<?php
for ($i = 1; $i <= 10; $i++)
{
    echo $i . "<br>";
}
?>

1
2
3
4
5
6
7
8
9
10

Auch bei der for-Schleife gibt es die Möglichkeit, die Schleife abzubrechen.

PHP-Quellcode: for-Schleife mit Abbruchbedingung
<?php
for ($i = 1; $i <= 10; $i++)
{
    if ( $i > 6 )
    {
        break;
    }
 
    echo $i . "<br>";
}
?>

1
2
3
4
5
6