Podręcznik PHP
Poprzedni | Rozdział 11. 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`