Podręcznik PHP
Poprzedni | Rozdział 16. Struktury kontrolne | Następny

# for

Pętla for jest najbardziej skomplikowanym rodzajem pętli w PHP. Zachowuje się identycznie jak jej odpowiedniki z C. Jej składnia wygląda następująco:

    for (wyrażenie1; wyrażenie2; wyrażenie3) instrukcje

wyrażenie1 jest wykonywane tylko raz, na początku pętli.

Na początku każdej nowej iteracji, obliczana jest wartość logiczna wyrażenia wyrażenie2. Jeśli wynikiem obliczenia jest `TRUE`, to pętla kontynuuje i następuje wykonanie instrukcji umieszczonych w pętli. Jeśli jednak wyrażenie ma wartość `FALSE`, to wykonanie pętli zostaje przerwane.

Na końcu każdej iteracji zostaje wykonane wyrażenie3.

Każde z wyrażeń może być puste. Puste wyrażenie2 oznacza, że pętla jest nieskończona (PHP interpretuje to jako wartość `TRUE`, podobnie z resztą jak C). Nie jest to jednak tak bezużyteczne, jak to się może wydawać, gdyż często stosuje się to w połączeniu z instrukcją break, co zastępuje wyrażenie2 w pętli for.

Wszystkie poniższe przykłady wyświetlają liczby od 1 do 10. Proszę zauważyć rozmaite odmiany składni:

`/* przykład 1 */ for ($i = 1; $i <= 10; $i++) { print $i; } /* przykład 2 */ for ($i = 1;;$i++) { if ($i > 10) { break; } print $i; } /* przykład 3 */ $i = 1; for (;;) { if ($i > 10) { break; } print $i; $i++; } /* przykład 4 */ for ($i = 1; $i <= 10; print $i, $i++);`

Oczywiście najzgrabniejsza składnia jest w przykładzie pierwszym (albo czwartym), ale w wielu sytuacjach puste wyrażenia w pętli for bardzo się przydają.

PHP obsługuje również składnię alternatywną (z dwukropkiem) w pętli for.

    for (wyrażenie1; wyrażenie2; wyrażenie3): instrukcja; ...; endfor;

Inne języki programowania posiadają pętlę foreach do obsługi tablic itp. W PHP 3 nie ma takiej pętli, natomiast została ona dodana do PHP 4. Więcej na ten temat w odpowiednim rozdziale. W PHP 3 można połączyć instrukcje while, list() i each() co pozwoli osiągnąć ten sam efekt. Przykłady na to znajdują się w rozdziałach dotyczących wyżej wymienionych instrukcji.

Poprzedni | Spis treści | Następny
do..while | Początek rozdziału | foreach