for
A for cilus a legbonyolultabb ciklus a PHP-ben. Éppen úgy viselkedik, mint a C nyelvbeli párja (–> C-ben értőknek tovább gomb). A for ciklus szintaxisa:
for (kif1; kif2; kif3) utasÃtás
[A fenti for szerkezettel megegyező az alábbi, remélhetőleg már ismerős kifejezés:
kif1; while (kif2) { utasÃtás; kif3; }
Az első kifejezés (kif1) a ciklus kezdetén egyszer kerül végrehajtásra.
Minden iteráció elején kif2 kiértékelÅ‘dik. Ha értéke TRUE, akkor a ciklus folytatódik, és az utasÃtásra kerül a vezérlés. Ha értéke FALSE, akkor a ciklus véget ér.
Minden iteráció végén kif3 is végrehajtásra kerül.
Bármelyik kifejezést el lehet hagyni. Ha kif2 üres, az azt jelenti, hogy a ciklus a végtelenségig fut [hacsak nem jön a jó tündér break utasÃtás képében...] (A PHP implicit TRUE-nak feltételezi az üres kif2-t, mint a C.) Ez nem annyira haszontalan, mint elsÅ‘re amennyire elsÅ‘nek tűnik, hiszen gyakran fejezheted be a ciklust egy feltételes kifejezésbe ágyazott break kifejezéssel a for feltétel kifejezésének kiértékelése helyett.
Nézd az alábbi példákat, mindegyikük kiÃrja a számokat 1-tÅ‘l 10-ig:
<?php
/* téma */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* 1. variáció */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* 2. variáció */
$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* 3. variáció - Coda :-) */
for ($i = 1; $i <= 10; print $i, $i++);
?>
Természetesen "a téma" a legbarátságosabb (vagy esetleg a 3. variáció). Sok helyen hasznos azonban, hogy üres kifejezés is Ãrható for ciklusba...
A PHP a for ciklus esetén is megengedi az alternatÃv szintaxishasználatát:
for (kif1; kif2; kif3): utasÃtás ... endfor;