PHP Handbuch
Zurück | Kapitel 11. Kontroll-Strukturen | Nach vorne

# `for`

`For`-Schleifen sind die komplexesten Schleifen in PHP. Sie funktionieren wie ihr Gegenstück in C. Die Syntax einer `for`-Schleife sieht so aus:

    for (expr1; expr2; expr3) Anweisung

Der erste Parameter (`expr1`) wird beim Schleifenbeginn geprüft bzw. ausgeführt (ohne jegliche Vorbedingung).

Zu Beginn jedes Durchlaufs wird nun `expr2` geprüft. Wenn dieser `TRUE` ist, fährt die Schleife weiter fort mit der Ausführung der nachfolgenden Befehle. Wenn das Ergebnis `FALSE` lautet, wird die Schleife beendet.

Am Ende jedes Durchlaufs wird nun auch noch `expr3` geprüft / ausgeführt.

Jeder der Parameter kann leer sein (optional). Ist `expr2` leer, wird die Schleife unbestimmt oft durchlaufen, da PHP ihn als `TRUE` wertet (wie in C). Das ist nicht so sinnlos, wie Sie vielleicht glauben, weil man häufig eine Schleife erst durch eine bedingte `break` -Anweisung statt durch eine unwahr werdende `for`-Bedingung beenden möchte.

Beachten Sie die folgenden Beispiele. Alle geben Zahlen von 1 bis 10 aus:

    /* Beispiel 1 */

    for ($i = 1; $i <= 10; $i++) {
        print $i;
    }

          /* Beispiel 2 */

    for ($i = 1;;$i++) {
        if ($i > 10) {
            break;
        }
        print $i;
    }

          /* Beispiel 3 */

    $i = 1;
    for (;;) {
        if ($i > 10) {
            break;
        }
        print $i;
        $i++;
    }

          /* Beispiel 4 */

    for ($i = 1; $i <= 10; print $i, $i++) ;

Selbstverständlich sieht das erste (oder das vierte) Beispiel am besten aus, aber Sie werden noch feststellen, dass es oftmals ganz nützlich sein kann, leere Parameter in `for`-Schleifen zu verwenden.

PHP unterstützt auch bei `for`-Schleifen die alternative "Doppelpunkt-Syntax".

    for (expr1; expr2; expr3): Anweisung; ...; endfor;

Andere Sprachen haben für das Durchlaufen eines Hash´s oder Arrays eine `foreach`-Anweisung. PHP 3 hat dies nicht; im Gegensatz zu PHP 4 (vgl. foreach). In PHP 3 kann man dafür eine Kombination von while mit der list()- und each()-Funktion einsetzen. Beispiele finden Sie in der Dokumentation zu diesen Funktionen.

Zurück | Zum Anfang | Nach vorne
`do..while` | Nach oben | `foreach`