PHP Handbuch
Zurück | Kapitel 16. Kontroll-Strukturen | Weiter

# for

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

    for (ausdr1; ausdr2; ausdr3) Anweisung

Der erste Ausdruck (ausdr1) wird beim Schleifenbeginn (ohne jegliche Vorbedingung) geprüft bzw. ausgeführt.

Zu Beginn jedes Durchlaufs wird nun ausdr2 geprüft. Wenn dieser `TRUE` ist, fährt die Schleife mit der Ausführung der nachfolgenden Anweisung(en) fort. Ist das Ergebnis `FALSE`, wird die Schleife beendet.

Am Ende jedes Durchlaufs wird ausdr3 geprüft (ausgeführt).

Jeder Ausdruck kann leer sein. Ist ausdr2 leer, wird die Schleife endlos oft durchlaufen (PHP wertet diesen, wie in C, implizit als `TRUE`). Das ist gar nicht so sinnlos, wie Sie vielleicht zunächst 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:

`<?php /* Beispiel 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } /* Beispiel 2 */ for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; } /* Beispiel 3 */ $i = 1; for (; ; ) { if ($i > 10) { break; } echo $i; $i++; } /* Beispiel 4 */ for ($i = 1; $i <= 10; echo $i, $i++); ?>`

Selbstverständlich sieht das erste (oder vielleicht 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 (ausdr1; ausdr2; ausdr3): Anweisung; ...; endfor;

Andere Sprachen haben für das Durchlaufen eines Hashs oder Arrays eine foreach-Anweisung. PHP 3 hat dies nicht; im Gegensatz zu PHP 4 (vgl. foreach). In PHP 3 können Sie für diesen Zweck while mit der list()- und each()-Funktion kombinieren. Beispiele finden Sie in der Dokumentation zu diesen Funktionen.

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