Pętle, czyli instrukcje iteracyjne służą wielokrotnego wykonywania tego samego fragmentu kodu. W języku PHP są cztery różne pętle. Każdą z nich stosuje się w innych przypadkach, ale przy odpowiednich modyfikacjach można stosować je zamiennie.
Pętla for
Stosowana jest przy operacjach powtarzanych z góry znaną ilość razy.
Konstrukcja:
for (wyrażenie_inicjujące; wyrażenie_warunkowe; wyrażenie iteracyjne)
instrukcja;
Wyrażenie inicjujące – wyrażenie, które zazwyczaj ustala warunek początkowy pętli.
Wyrażenie warunkowe – od jego wartości (true lub false) zależy czy pętla będzie wykonywana dalej czy się zakończy.
Wyrażenie iteracyjne – najczęściej instrukcja modyfikująca licznik pętli.
Instrukcja – tzw. ciało pętli – kod, który będzie powtarzany w pętli.
Przed rozpoczęciem wykonywania kodu pętli wartościowane jest wyrażenie inicjujące. Następnie sprawdzana jest wartość wyrażenia warunkowego. Jeśli jest true to pętla jest kontynuowana i wykonywana jest instrukcja z ciała pętli. Po wykonaniu tej części wartościowane jest wyrażenie iteracyjne i znowu obliczane jest wyrażenie warunkowe. Jeśli ponownie będzie true znów wykonane zostanie ciało pętli itd. Jeśli wyrażenie warunkowe zwróci false pętla zostanie zakończona.
Przykład pętli for wypisującej cyfry od 1 do 5:
for( $x = 1; $x <= 5; $x++ )
echo $x."<br/>";
Pętla while
Stosowana jest przy operacjach,w przypadku, których nie wiadomo ile razy kod będący ciałem pętli ma być wykonany.
Konstrukcja:
while (warunek)
instrukcja;
Warunek i instrukcja mają podobne znaczenie jak w pętli for.
Pętla while wykonuje się tak długo jak spełniony jest warunek. Jeśli warunek zwróci wartość false pętla zostaje zakończona. W przypadku pętli while trzeba pamiętać, aby w ciele pętli umieścić kod, który będzie wpływał na zmianę warunku. Jeśli warunek nie będzie zmieniany i ciągle będzie zwracał true to pętla będzie nieskończona.
Przykład pętli while wypisującej cyfry od 1 do 5:
$x=1;
while($x <= 5){
echo $x."<br>";
$x++;
}
Pętla do...while
Jest to modyfikacja pętli while.
Konstrukcja:
do {
instrukcja;
}
while (warunek);
Warunek i instrukcja mają takie samo znaczenie jak przy pętli while.
Różnica polega na tym, że warunek sprawdzany jest po każdym wykonaniu pętli. Jeśli w pętli while warunek będzie niespełniony, pętla nie wykona się ani razu. W pętli do...while w takie sytuacji pętla wykona się raz.
Pętla foreach
Służy do przeglądania zawartości tablic i obiektów. Kod wewnątrz jest powtarzany dla każdego z elementów tablicy, a sam element jest na ten czas przenoszony do tworzonej przez pętlę zmiennej.
Konstrukcja pierwsza:
foreach (wyrażenie_tablicowe as wartość)
instrukcja;
Konstrukcja druga:
foreach (wyrażenie_tablicowe as klucz => wartość)
instrukcja;
Wyrażenie tablicowe to najczęściej zmienna tablicowa.
Klucz to zmienna, w której umieszczony zostanie klucz aktualnie przeglądanego elementu tablicy.
Wartość to zmienna, w której umieszczona zostanie wartość aktualnie przeglądanego elementu.
Zaletą zastosowania pętli foreach jest brak potrzeby obliczania ilości wykonań. Pętla wykona się tyle razy, ile jest elementów w tablicy.
Przykład pętli foreach wypisującej zwartość tablicy:
$tablica = array('pierwszy' => 1,
'drugi' => 2,
'trzeci' => 3,
'czwarty' => 4);
foreach($tablica as $klucz => $wartosc)
echo '$tablica['.$klucz.'] = '.$wartosc.'<br />';