Pętle pozwalają w prosty sposób wykonać wiele podobnych operacji. Mamy do dyspozycji kilka (powiedzmy, że cztery) rodzaje pętli.
Pętla for
Chcemy wypisać liczby od 1 do 10? No problemo, check this out:
<?php
# wypisujemy liczby od 0 do 10 za pomocą pętli for
for($i = 0; $i<=10; $i++){
echo "$i <br>";
}
?>
Pętle zazwyczaj działają na podstawie pewnej zmiennej iteracyjnej, którą nazywamy w skrócie i. Pętla for przyjmuje 3 argumenty, wewnątrz nawiasu wpisujemy wartość początkową zmiennej iteracyjnej i, po średniku podajemy warunek do kiedy pętla będzie się wykonywać, ostatni warunek to stwierdzenie jak będzie się zmieniać zmienna i po każdym przejściu pętli. Wewnątrz nawiasu klamrowego zawieramy instrukcje, które będą się wykonywać w każdym cyklu pętli. Zazwyczaj pętlę for stosujemy wtedy, kiedy wiemy ile iteracji pętli powinno nastąpić.
Dla przećwiczenia, poniżej przykład, który wyświetla liczby od 10 do 100, co 5.
<?php
# wypisujemy liczby od 10 do 100, co 5, za pomocą pętli for
for($i = 10; $i<=100; $i+=5){
echo "$i <br>";
}
?>
Pętla foreach
Pętli foreach zazwyczaj używa się w połączeniu z tablicami, kiedy chcemy przejść przez wszystkie elementy tablicy. W nawiasie okrągłym podajemy nazwę tablicy, a następnie po instrukcji as tworzymy tymczasową zmienną, która w każdym przejściu pętli będzie zawierała następny element tablicy).
W przykładzie poniżej wypiszemy wszystkie nazwy dni tygodnia:
<?php
$dni_tygodnia = array("Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
foreach($dni_tygodnia as $dzien){
echo $dzien. ", ";
}
?>
Pętla while i do while
Pętli while używamy wtedy, gdy nie wiemy ile razy powinna się ona wykonać. Za jej pomocą sprawdzamy na przykład czy jakieś procesy się zakończyły lub pobieramy wszystkie informacje zapisane w pliku. Oczywiście możemy za pomocą pętli while zrobić to co robi pętla for, np. wypiszemy liczby od 10 do 1:
<?php
$i = 10;
while($i>0){
echo "$i, ";
$i--;
}
?>
Pętla while wykona się wtedy, gdy wewnątrz nawiasu warunek będzie prawdziwy. Czasami, jeśli chcemy, żeby niezależnie od warunku pętla wykonała się chociaż jeden raz wtedy skorzystamy z pętli do while. W poniższym przykładzie pętla wykona się raz mimo, że warunek w nawiasie nie jest spełniony, ponieważ i nie jest większe od 0.
<?php
$i = 0;
do{
echo "$i, ";
$i--;
}
while($i>0);
?>
Przykład użycia 4 rodzaji pętli do wyświetlenia wszystkich elementów tablicy:
<?php
$dni_tygodnia = array("Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
$i = 0;
do{
echo $dni_tygodnia[$i]."<br>";
$i++;
}while($i < 7);
$i = 0;
while($i < 7){
echo $dni_tygodnia[$i]."<br>";
$i++;
}
for($i=0;$i<7;$i++){
echo $dni_tygodnia[$i]."<br>";
}
foreach($dni_tygodnia as $dzien){
echo $dzien. ", ";
}