while
Najjednostavniji oblik petlje:
while (izraz)
naredba
Ako je izraz true petlja se izvršava i ponovo provjerava sve dok izraz ne postane false.
Primjer koji ispisuje cijele brojeve od 1 do 10:
$total = 0;
$i = 1;
while ($i <= 10) {
$total += $i;
}
Možete ranije izaći iz petlje sa break naredbom, u slijedećem kodu $i nikada ne dosegne vrijednost 6, zato što je petlja zaustavljena kad je dosegla 5:
$total = 0;
$i = 1;
while ($i <= 10) {
if ($i == 5)
break;
$total += $i;
$i++;
}
Opcionalno možete postaviti broj nakon naredbe break , ukazujući na nivo petlje:
$i = 0;
while ($i < 10) {
while ($j < 10) {
if ($j == 5)
break 2;
$j++;
}
$i++;
}
echo $i;
echo $j;
0
5
Continue naredba skaće na ostale provjere uvjeta petlje.
while ($i < 10) {
while ($j < 10) {
if ($j = 5)
continue 2; // nastavlja 2 nivoa
$j++;
}
$i++;
}
PHP podržava i do / while petlju:
do
naredba
while (izraz)
Koristeći do/while petlju osigurate da se tijelo petlje izvrši barem jedan puta:
$total = 0;
$i = 1;
do {
$total += $i++;
} while ($i <= 10);
Možete koristiti i continue naredbu u do/while naredbi kao u normalnoj while naredbi.
Do/while naredbe se ponekad koriste da se prekine do bloka koda kada greška nastupi. Npr:
do {
// uradi nešto
if ($greška)
break;
// uradi još nešto
} while (false);
for
for naredba je istovjetna while naredbi, osim što dodaje inicijalizaciju brojaća i manipulacijske izraze brojanja.
while petlja koja se izvršava od 0 do 9, ispisujući svaki broj:
$brojac = 0;
while ($brojac < 10) {
echo "Broj je $brojac\n";
$brojac++;
}
Istovjetna sažeta for petlja:
for ($brojac = 0; $brojac< 10; $brojac++)
echo "Broj je $brojac\n";
Struktura for naredbe je:
for (početak; uvjet; prirast)
naredba
foreach
foreach naredba omogućava vam izvršavanje nad elementima u nizu.
Za petlju u nizu koja pristupa svakom elementu koristite:
foreach ($data as $value) {
// ...
}
Alternativna sintaksa:
foreach ($data as $value):
// ...
endforeach;
Za petlju nad nizom, koja pristupa i ključu i vrijednosti koristite:
foreach ($array as $key => $value) {
// ...
}
Alternativna sintaksa:
foreach ($array as $key => $value):
// ...
endforeach;