INSTRUKCJA WHILE
Podstawowa struktura pętli
while przedstawia się następująco:
<? while (warunek)
# kod pętli
?>
|
Pętla
while jest wykonywana aż do momentu, gdy warunek przyjmie wartość
false. Jeżeli warunek już na samym pocątku nie był prwdziwy, pętla nie zostanie wykonana ani razu. Spójrzmy na taki przykład:
<? $i = 1;
while ($i <= 5)
echo "Licznik ma wartość " . $i++ . "\n";
# inkrementacja, zapisanie nowej wartości po wykonaniu instrukcji echo
?>
|
Pętla zostanie wykonana 5 razy. Na początku zmienna
$i ma wartość
1. Jeżeli warunek jest prawdziwy linia zostaje wydrukowana i następuje inkrementacja zmiennej, po czym sytuacja się powtarza. Przykład ten zwróci:
Licznik ma wartość: 1
Licznik ma wartość: 2
Licznik ma wartość: 3
Licznik ma wartość: 4
Licznik ma wartość: 5
|
Zbudujmy teraz taki warunek, który od razu nie jest spełniony:
<? $i = 6;
while ($i <= 5)
echo "licznik ma wartość " . $i++ . "\n";
?>
|
Kod ten niczego nie zwróci, ponieważ warunek od początku nie był prawdziwy i pętla nie została wykonana ani razu.
Jeżeli chcemy zapisać więcej linii kodu wewnątrz pętli, kod należy umieścić w obrębie nawiasów klamrowych:
<? $i = 1;
while ($i <= 5) {
echo("Wartość licznika: ");
$i++;
echo($i);
}
?>
|
Co zwróci:
Wartość licznika: 2
Wartość licznika: 3
Wartość licznika: 4
Wartość licznika: 5
Wartość licznika: 6
|
Ponieważ inkrementacja zmiennej i zapisanie jej wartości następuje przed wydrukowaniem, licznik drukowany jest od wartości
2 do
6.
Alternatywny sposób zapisu
PHP udostępnia jeszcze jeden sposób zapisu takiej pętli:
<? $i = 1;
while ($i <= 5):
echo("Wartość licznika: ");
$i++;
echo($i);
endwhile;
?>
|
Blok instrukcji
while zostaje w tym przypadku otwarty za ponicą znaku
:, a zakończony instrukcją
endwhile.