Podmienky alebo vetvenie - to je základná súčasť každého programovacieho jazyka. Pomocou vetvenia sa skript rozhoduje, čo má urobiť: Ak je podmienka splnená, vykonaj príkazy, ináč vykonaj iné príkazy.
Najjednoduchší typ je neúplná podmienka.
if (logická_hodnota) príkaz;
Príkaz
sa vykoná len vtedy, ak je logická_hodnota
pravdivá. Príklad:
$dane_cislo = 15; if ($dane_cislo >= 6) echo "Dané číslo je väčie alebo rovné 6.";
Čo ak chceme vykonať viac príkazov? Jednoducho ich ohraničíme zloženými zátvorkami.
$c = 1; if ($c == 1) { echo "Premenná c je 1. "; echo "To je predsa jasné."; }
Pri úplnej podmienke je určené, čo sa má vykonať, ak je logická hodnota pravdivá a čo, ak nepravdivá.
if (1 > 2) echo "1 je väčšie ako 2."; else { echo "1 nie je väčšie ako 2."; echo " Je menšie alebo rovné."; }
Teraz trochu zložitejší príklad.
$text = "ABC"; if ($text[0] == "A") { echo "Text sa začína na A. "; if ($text[1] == "B" && $text[2] == "C") echo "Aj ďalšie 2 písmená sú v poriadku."; else echo "Ale zvyšné písmená nie sú v poriadku."; }
Existujú aj iné spôsoby zápisu podmienok, napríklad pomocou kľúčového slova elseif
:
$a = 1; $b = 2; if ($a < $b) echo "a je menšie ako b"; elseif ($a == $b) echo "a sa rovná b"; else echo "a je väčšie ako b";
Miesto zložených zátvoriek sa dá použiť dvojbodka a endif
.
if ("10" !== 10): echo "Reťazec je iného typu ako číslo. "; echo "Porovnanie operátorom !== vráti true"; endif;
Keď potrebujeme porovnávať jednu premennú, či je rovná rôznym hodnotám, a podľa toho vykonať príslušnú operáciu, použijeme príkaz switch
.
$id = "programy"; switch ($id) { case "hlavna": echo "Toto je hlavná stránka."; break; case "programy": echo "Vitajte v sekcii Programy."; break; case "hry": echo "Vitajte v sekcii Hry."; break; }
Skúste odstrániť príkazy break
a pozorujte, čo sa stane.
Ak ani jedna hodnota nevyhovuje, vykoná sa príkaz nasledujúci po kľúčovom slove default
:
$a = 3; switch ($a) { case 1: echo "Číslo je 1."; break; default: echo "Číslo je iné."; }
Podobne ako endif
, existuje aj endswitch
.
switch($premenna): ... endswitch;
Je to operátor, ktorý má tri operandy (výrazy, s ktorými pracuje). PHP nám jeden taký ponúka. Slúži na priradenie hodnoty premennej, pričom o hodnote sa má rozhodnúť podmienkou. Kód
if ($podmienka) $premenna = 1; else $premenna = 2;
možno zjednodušene zapísať takto:
$premenna = ($podmienka) ? 1 : 2;