Ne jednou nastane p°φpad, kdy budete chtφt, aby skript provßd∞l urΦitou akci dokud bude platit podmφnka. V tΘto situaci vyu₧ijete cykl∙, kterΘ tuto vlastnost umo₧≥ujφ.
While (< v²raz >) { < p°φkazy k provedenφ >; }
Cyklus while je jeden z nejpou₧φvan∞jÜφch cykl∙. Cyklus bude provßd∞t < p°φkazy k provedenφ > do tΘ doby, dokud bude < v²raz > roven boolean hodnot∞ TRUE. Pou₧itφ si ukß₧eme na ukßzce.
<? // prom∞nnΘ $a p°i°adφme hodnotu 1 $i = 1; /* Cyklus, kter² bude porovnßvat hodnotu prom∞nnΘ $i a zatφm co bude mφt prom∞nnß $i hodnotu menÜφ nebo rovnu 10, bude vypisovat jejφ obsah. Nakonec zv∞tÜφme hodnotu prom∞nnΘ $i o 1, jinak bychom vytvo°ili nekoneΦn² cyklus. */ while ($i <= 10) { // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; $i++; // zv∞tÜφ obsah prom∞nnΘ $i o 1 } ?>
M∙₧eme takΘ vyu₧φt alternativnφho zßpisu.
<? // prom∞nnΘ $a p°i°adφme hodnotu 1 $i = 1; /* Cyklus, kter² bude porovnßvat hodnotu prom∞nnΘ $i a zatφm co bude mφt prom∞nnß $i hodnotu menÜφ nebo rovnu 10, bude vypisovat jejφ obsah. Nakonec zv∞tÜφme hodnotu prom∞nnΘ $i o 1, jinak bychom vytvo°ili nekoneΦn² cyklus. */ while ($i <= 10): // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; $i++; // zv∞tÜφ obsah prom∞nnΘ $i o 1 endwhile; ?>
do { < p°φkazy k provedenφ >; }while (< v²raz >);
Cykly do-while a While jsou si velmi podobnΘ, ale rozdφl je v tom, ₧e < v²raz > je porovnßvßn a₧ na konci skriptu. Dφky tΘto vlastnosti budou < p°φkazy k provedenφ >; vykonßny alespo≥ jednou. Pou₧itφ si ukß₧eme na ukßzce.
<? // prom∞nnΘ $a p°i°adφme hodnotu 1 $i = 1; /* Cyklus vypφÜe hodnotu prom∞nnΘ $i, ale a₧ na konci cyklu se porovnßvß podmφnka. Skript tedy jednou vypφÜe obsah tΘto prom∞nnΘ. */ do { // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; } while ($i < 1); ?>
M∙₧eme takΘ vyu₧φt alternativnφho zßpisu.
<? // prom∞nnΘ $a p°i°adφme hodnotu 1 $i = 1; /* Cyklus vypφÜe hodnotu prom∞nnΘ $i, ale a₧ na konci cyklu se porovnßvß podmφnka. Skript tedy jednou vypφÜe obsah tΘto prom∞nnΘ. */ do // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; while ($i < 1); ?>
for (< v²raz1 >, < v²raz2 >, < v²raz3 >) { < p°φkazy k provedenφ >; }
Cyklus for se takΘ °adφ mezi jeden z nejpou₧φvan∞jÜφch druh∙ cykl∙. Na zaΦßtku provßd∞nφ cyklu se urΦφ (vyhodnotφ) < v²raz1 >. Nßsledn∞ se vyhodnotφ < v²raz2 > a pokud vracφ (stejn∞ jako u p°edeÜl²ch cykl∙) hodnotu TRUE, provedou se < p°φkazy k provedenφ >. Na konci ka₧dΘ iterace se provede < v²raz3 >.
<? /* Nastavφme hodnotu prom∞nnΘ na 0 a p°i ka₧dΘm "pr∙chodu" cyklem ji zv∞tÜφme o 1. Nßsledn∞ vypφÜeme obsah tΘto prom∞nnΘ. */ for ($i = 0; $i <= 10; $i++) { // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; } ?>
M∙₧eme takΘ vyu₧φt alternativnφho zßpisu.
<? /* Nastavφme hodnotu prom∞nnΘ na 0 a p°i ka₧dΘm "pr∙chodu" cyklem ji zv∞tÜφme o 1. Nßsledn∞ vypφÜeme obsah tΘto prom∞nnΘ. */ for ($i = 0; $i <= 10; $i++): // vypφÜe obsah prom∞nnΘ $i a zalomφ na nov² °ßdek echo $i . "<br>"; endfor; ?>
foreach (< pole > as < hodnota >) { < p°φkazy k provedenφ >; }
Cyklus foreach umo₧≥uje prochßzet prvky < pole > a zpracovßvat je. P°i prvnφ iteraci je automaticky nastaven vnit°nφ ukazatel na prvnφ element pole. VÜe si ukß₧eme na p°φklad∞.
<? /* V prom∞nnΘ $pole vytvo°φme pole a vlo₧φme n∞jakΘ hodnoty. */ $pole = Array("m∞sto", "mo°e", "ku°e", "stavenφ"); // cyklem foreach projdeme vÜechny prvky pole foreach ($pole as $hodnota) { // vypφÜe obsah prom∞nnΘ $hodnota a zalomφ na nov² °ßdek echo $hodnota . "<br>"; } ?>
Cyklus foreach m∙₧eme takΘ vyu₧φt kdy₧ pou₧φvßme jako index pole klφΦe.
<? /* V prom∞nnΘ $pole vytvo°φme pole a vlo₧φme n∞jakΘ hodnoty. */ $pole = Array("A" => "m∞sto", "B" => "mo°e", "C" => "ku°e", "D" => "stavenφ"); // cyklem foreach projdeme vÜechny prvky pole foreach ($pole as $klic => $hodnota) { // vypφÜe obsah prom∞nnΘ $hodnota a zalomφ na nov² °ßdek echo $hodnota ." - klφΦ: $klic<br>"; } ?>
P°φkaz break m∙₧ete vyu₧φt tehdy, pokud budete z n∞jakΘho d∙vodu chtφt ukonΦit provßd∞nφ cyklu.
<? /* V prom∞nnΘ $pole vytvo°φme pole a vlo₧φme n∞jakΘ hodnoty. */ $pole = Array("m∞sto", "mo°e", "ku°e", "stavenφ"); // cyklem foreach projdeme vÜechny prvky pole foreach ($pole as $hodnota) { /* pokud bude mφt prom∞nnß $hodnota hodnotu "ku°e", cyklus p°eruÜφ svou Φinnost */ if ($hodnota == "ku°e") { break; } echo $hodnota ."<br>"; } ?>
P°φkaz continue m∙₧ete vyu₧φt tehdy, pokud budete z n∞jakΘho d∙vodu chtφt ukonΦit provßd∞nφ aktußlnφ iterace cyklu.
<? /* V prom∞nnΘ $pole vytvo°φme pole a vlo₧φme n∞jakΘ hodnoty. */ $pole = Array("m∞sto", "mo°e", "ku°e", "stavenφ"); // cyklem foreach projdeme vÜechny prvky pole foreach ($pole as $hodnota) { /* pokud bude mφt prom∞nnß $hodnota hodnotu "ku°e", cyklus p°eruÜφ provßd∞nφ aktußlnφ iterace */ if ($hodnota == "ku°e") { continue; } echo $hodnota ."<br>"; } ?>
Pro tento dφl to bude vÜe. V p°φÜtφm dφle si povφme, co jsou to funkce.