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.
