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;