Podmínky
If
Nejjednodušší podmínkou je if. Říká zkrátka, že pokud je nějaký logický výraz pravdivý, něco se stane. Zapisuje se podobně jako funkce – klíčové slovo je následované závorkami, do kterých se ale tentokrát zapíše místo parametru vyhodnocovaný výraz, a v případě, že tento výraz vrátí booleanovou hodnotu true, provede se kód ve složených závorkách. Pokud chceme k naší podmínce přidat další větev, musíme místo if použít elseif, a pokud potřebujeme, aby se nějaký kód provedl, když žádná z předchozích větví neuspěje, použijeme else (bez závorek).
Následující kód například vygeneruje náhodné číslo mezi -10 a 10 a následně vypíše, jestli vygenerované číslo bylo kladné, záporné, nebo přesně 0.
$cislo = rand(-10, 10);
if($cislo > 0)
{
echo 'Cislo ' . $cislo . ' je kladne.';
}
elseif($cislo < 0)
{
echo 'Cislo ' . $cislo . ' je zaporne.';
}
else
{
echo 'Cislo je ' . $cislo . '.';
}
Switch
Switch funguje trochu jinak, nevyhodnocuje totiž podmínky typu boolean, ale hodnoty nějaké proměnné. V závorkách za klíčovým slovem tedy tentokrát najdeme tuto proměnnou a jednotlivé větve se zapisují slovem case následovaným hodnotou a dvojtečkou. Jako else větev se zde používá klíčové slovo default. Každý case včetně defaultní větve musí být ukončený příkazem break.
Můžeme si ukázat podobný příklad s náhodnými čísly jako minule.
$cislo = rand(1, 10);
switch($cislo)
{
case 1:
echo 'Cislo je 1.';
break;
case 2:
echo 'Cislo je 2.';
break;
case 3:
echo 'Cislo je 3.';
break;
default:
echo 'Cislo neni mezi 1 a 3.';
break;
}
Ve většině případů bude zápis podmínky přes switch stejný nebo delší než přes if, takže se používá málokdy, ale přesto je dobré o něm vědět pro případ, že se najde situace, kde by byl switch šikovnější.
Cykly
For
For je cyklus s pevným počtem opakování. Obsahuje takzvanou řídící proměnnou, která se při každé iteraci mění (nejčastěji zvyšuje o 1). V závorkách obsahuje celkem tři výrazy. První říká, jakou hodnotu má řídící proměnná na začátku cyklu. Druhý je vlastně podmínka, kterou cyklus zkontroluje před každou iterací a pokud není pravdivá, cyklus je ukončen. Třetí určuje, co se s řídící proměnnou stane na konci každé iterace.
Tento cyklus můžeme použít třeba pro vypsání čísel v určitém rozsahu, v našem případě 1-10.
for($i = 1; $i <= 10; $i++) //$i++ je zkrácená verze zápisu $i = $i + 1
{
echo $i . '<br>';
}
While
Cyklus while je podobný cyklu for, ale počet jeho opakování není pevný, zkrátka běží, dokud není splněna podmínka v závorkách. Používá se proto v případech, kdy nevíme, kolikrát se cyklus má opakovat, ale víme, čím ho chceme ukončit.
Řekněme třeba, že chceme losovat náhodná čísla, dokud nepadne číslo 10.
$cislo = 0; //číslo je potřeba nejprve inicializovat, jinak program vyhodí chybu při první iteraci
while($cislo != 10)
{
$cislo = rand(1, 10);
echo $cislo . '<br>';
}
Foreach
Foreach je speciální cyklus, jehož počet opakování se rovná počtu prvků zadaného pole. Do jeho závorek píšeme právě zmíněné pole, dále klíčové slovo as a proměnnou, pomocí které budeme uvnitř cyklu přistupovat k právě iterovanému prvku. Ten je ještě možné rozdělit na klíč a hodnotu zápisem klíč => hodnota
(který je vám možná povědomý z minulého dílu).
$jazyky = [
'en' => 'English',
'de' => 'Deutsch',
'cs' => 'Česky'
];
foreach($jazyky as $zkratka => $jazyk)
{
echo $zkratka . ' - ' . $jazyk . '<br>';
}