Předchozí díl - Datové typy

Úvod do PHP, 4. díl: Podmínky a cykly

image_4

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>';
}
Zpět nahoru
krystof-spulak
Kryštof Špulák

Přes den programátor, v noci hráč...a HW specialista...a grafik...a stále programátor...zkrátka pokud to souvisí s počítačem, tak se v tom nejspíš alespoň pokusil vrtat.