![php-logo[1]](http://www.womap.4fan.cz/wp-content/uploads/2012/06/php-logo1-150x79.png)
Dneska si rozepíšeme další možnosti řízení běhu programu. Jde o podmínky switch, for a while.
Switch
První z nich je switch. Používá se, když chceme vytvořit řešení pro každou hodnotu proměnné zvlášť. Samozřejmě to lze vyřešit pomocí několika podmínek if, ale toto řešení je mnohem jednodušší a elegantnější. Jako příklad použití si ukážeme jednoduchý skript na vypsání dne v týdnu, podle jeho čísla.
<?php
switch(date("w")) {
case 1: echo "Pondělí";
break;
case 2: echo "Úterý";
break;
case 3: echo "Středa";
break;
case 4: echo "Čtvrtek";
break;
case 5: echo "Pátek";
break;
case 6: echo "Sobota";
break;
default: echo "Neděle";
break;
}
?>
Takže, co tento skript znamená? Asi jste si všimli, že za switch do kulatých závorek se opět píše proměnná, podle jejíž hodnoty se budou konat jednotlivé příkazy. Místo této proměnné můžeme také použít nějakou funkci, která nám vrací nějaké hodnoty, jako v tomto případě – funkce date s parametrem w, která nám vrací číselnou hodnotu, podle které určíme den v týdnu (0 – neděle, 1 – pondělí,….). Dále si všimněte slova case, za kterým může následovat číslo (jako v tomto případě), nebo textový řetězec. Pokud je číslo, resp. textový řetězec shodný s hodnotou nacházející se za case, tak se provede příkaz, který následuje za : . Také si všimnětě příkazu break;, který odděluje jednotlivé case. Poslední věc, které stojí za zmínku je slovo default. Pokud není splněna ani jedna podmínka (case), vykoná se příkaz následující za default. Příkaz default je opět ukončen slovem break;.
Takže to by bylo k podmínce switch. Nyní přejdeme k cyklu for.
for
Díky cyklu můžeme několikrát za sebou volat jeden příkaz, což se někdy hodí a je to mnohem lepší, než něco třeba 10x opisovat, akorát s jinou hodnotou. Nevím co bych k tomu dodal, a tak se přesuneme rovnou k zápisu.
<?php
for($a = 1; $a <6; $a++) {
echo "<h$a>Nadpis $a úrovně ";
}
?>
Nejlepší bude si prvni vysvělit, co skript dělá. Takže, jde o to, že pomocí cyklu for zvyšuji postupně hodnotu proměnné $a o 1 (pomocí $a++). Následně jsem pro názornou ukázku použil vypsání prvních 6 úrovní nadpisů, přičemž místo abych vypisoval <h1></h1>, <h2></h2>,… jsem vypisoval zápis pro nadpis (
While
Funkce a použití cyklu while je obdobné jako u cyklu for, jak sami za chvíli ze zápisu pochopíte.
<?php
$a = 1;
while ($a<20) {
echo $a;
$a++;
}
?>
Ze zápisu je tedy vidět, že použití a funkce je téměř totožná, pouze se od cyklu for liší v zápise. Jak můžete vidět, proměnnou a její hodnotu definujeme už před samotným cyklem. Do kulatých závorek vložíme podmínku a pak už následují složené závorky, kde je napsán příkaz/y, které se mají provést. Někdy může nastat problém, že podmínka nebude splněna ani napoprvé, tím pádem, pokud chceme i tak provést nějaký příkaz, tak použijeme cyklus do-while, který je obdoný, jen se liší o příkaz do.
<?php
$a = 5;
do {
echo "$a
$a++
}
while($a<4);
?>
Jak vidíte, zápis je trochu odlišný, a sice za slovo do se do složených závorek zapíše samotný příkaz/příkazy, které mají být provedeny a až za složené závorky se napíše while a podmínka. Tento zápis zajištujě, že se příkaz vykoná aspoň jednou, což se občas hodí.
Takže, to by bylo k dnešnímu dílu o podmínkách a cyklech v PHP vše.