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.