Algoritmy s PHP |
Ján Guniš, PF UPJŠ, Košice |
Väčšina algoritmov musí reagovať na vstupy a podľa toho vetviť výpočet. Jednou z možností je použitie príkazu IF. Príkaz IF má niekoľko tvarov.
Príklad príkazu IF | Vysvetlenie |
if (podmienka) prikaz; |
Ak je podmienka splnená, vykoná sa príkaz |
if ($b != 0) echo "Podiel $a/$b=" . $a/$b; |
Ak je premenná $b rôzna od 0, vypíše
sa hodnota výrazu $a/$b |
if ($b != 0) |
Ak chceme v prípade platnosti podmienky vykonať viac príkazov, ohraničíme ich zátvorkami {}. Ak teda premenná $b je rôzna od nuly, vykonajú sa oba príkazy. |
if ($b != 0): |
V prípade písania zložitejších štruktúr je predchádzajúci spôsob dosť neprehľadný a môžeme sa v programe "stratiť". Prehľadnejšie je teda použitie tejto syntaxe. Nezabudnite na ":" za podmienkou! |
Často sa vyskytne situácia, kde na základe platnosti podmienky musíme vykonať dve rôzne činnosti. Vtedy použijeme IF ELSE.
Príklad príkazu IF ELSE | Vysvetlenie |
if (podmienka) |
Ak je podmienka splnená, vykoná sa
prikaz1. Ak splnená nie je, vykoná sa prikaz2. |
if ($b != 0) |
Ak je premenná $b rôzna od 0, vypíše
sa hodnota výrazu $a/$b. V opačnom prípade sa vypíše text, ktorý
hovorí, že podiel nie je definovaný. |
if ($b != 0) |
Ak chceme v prípade platnosti (neplatnosti) podmienky vykonať viac príkazov, ohraničíme ich zátvorkami {}. |
if ($b != 0): |
V prípade písania zložitejších štruktúr je predchádzajúci spôsob dosť neprehľadný a môžeme sa v programe "stratiť". Prehľadnejšie je teda použitie tejto syntaxe. Nezabudnite na ":" za podmienkou a kľúčovým slovom else. |
V prípade viacnásobného vetvenia, môžeme použiť príkaz IF ELSEIF ELSE. Mohli by sme samozrejme použiť ďalší príkaz IF vo vetve ELSE predchádzajúceho príkazu IF, ale pri zložitejších vetveniach by sa program mohol stať neprehľadným.
Príklad príkazu IF ELSEIF ELSE | Vysvetlenie |
if (podmienka1) |
Ak je podmienka1 splnená, vykoná sa
prikaz1. Ak podmienka1 nie je splnená a zároveň je splnená podmienka2,
vykoná sa prikaz2 atď. Ak nie je splnená ani jedna z podmienok, vykoná
sa príkazn vo vetve else. Vetva else však nie je povinná. Ak ju
neuvedieme, a nebude splnená žiadna z podmienok, nevykoná sa žiaden príkaz
z tela IF ELSEIF ELSE. V prípade, že podmienok je splnených viac, vykoná
sa len príkaz za prvou platnou podmienkou. |
if ($a < $b) |
Porovnanie dvoch čísel. Môžu nastať tri situácie. Testujeme podmienky $a<$b, $a>$b. Ak nie je splnená ani jedna z nich, ostáva posledný prípad (vetva else), $a=$b. |
if ($a < $b): |
Ak chceme v niektorej vetve vykonať viac príkazov, použijeme ":" za podmienkou alebo za slovíčkom else. Nezabudnite na endif na konci. Ak v jednej vetve použijete ":" za podmienkou, musíte ju použiť za každou podmienkou, inak to PHP interpretuje ako syntaktickú chybu. |