Správne ovládanie toku programu je základom každého funkčného skriptu v PHP. Pomocou vetvenia a cyklov dokážeme aplikácii „povedať“, ako sa má správať v rôznych situáciách – či má niečo vykonať, opakovať alebo preskočiť. Tento článok vás prevedie tým najdôležitejším: if
, switch
, for
, foreach
, while
, do-while
a špeciálnymi konštrukciami ako break
, continue
a ternárny operátor.
if-else
a switch-case
Vetvenie v PHP umožňuje vykonať rôzne časti kódu podľa podmienky.
if-else:
<?php
$vek = 18;
if ($vek >= 18) {
echo "Máš plnoletosť.";
} else {
echo "Si ešte mladý.";
}
?>
switch-case:
<?php
$den = "utorok";
switch ($den) {
case "pondelok":
echo "Začiatok týždňa";
break;
case "piatok":
echo "Víkend na dosah!";
break;
default:
echo "Bežný deň";
}
?>
Kedy použiť: if-else
je vhodné pri porovnávaní rozsahov alebo zložitejších podmienok. switch
je ideálny pre kontrolu presných hodnôt.
for
, while
, do-while
, foreach
for – používame, ak vieme počet opakovaní:
<?php
for ($i = 1; $i <= 5; $i++) {
echo "Hodnota: $i <br>";
}
?>
while – opakuje, kým je podmienka pravdivá:
<?php
$i = 1;
while ($i <= 5) {
echo $i++;
}
?>
do-while – vykoná sa aspoň raz:
<?php
$i = 6;
do {
echo $i;
} while ($i <= 5);
?>
foreach – najlepšia voľba pre prácu s poľami:
<?php
$mena = ["Peter", "Jana", "Marek"];
foreach ($mena as $osoba) {
echo "Ahoj, $osoba!<br>";
}
?>
break
a continue
break
ukončí aktuálny cyklus alebo blok switch
. continue
preskočí na ďalšiu iteráciu cyklu.
Príklad:
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) continue;
if ($i == 8) break;
echo "$i<br>";
}
?>
V tomto príklade sa číslo 5 preskočí a cyklus sa ukončí po čísle 7.
Namiesto if-else
možno použiť skrátený zápis:
<?php
$vek = 20;
echo ($vek >= 18) ? "Dospelý" : "Nezletilý";
?>
Pozor: Ternárny operátor by sa mal používať len na jednoduché logické výrazy – pri komplikovaných podmienkach sa kód stáva neprehľadný.
Najčastejšie chyby pri práci s vetvením a cyklami:
}
alebo )
break
alebo $i++
)default
v switch
if ($vek = 18)
namiesto ==
)Pri ladení kódu používajte funkcie ako var_dump()
, print_r()
a kontrolujte nastavenie display_errors
v PHP.ini alebo cez:
<?php
ini_set("display_errors", 1);
error_reporting(E_ALL);
?>
Bez základov vetvenia a cyklov nie je možné vytvoriť dynamickú a logicky spracovanú aplikáciu. Keď raz zvládnete if
, foreach
či switch
, výrazne si zjednodušíte prácu a eliminujete zbytočné chyby.
Chcete sa naučiť PHP komplexne – od podmienok až po databázy a AJAX? Vyskúšajte náš kurz PHP – Programovanie dynamických webových stránok v PHP a úvod do AJAXu a získajte zručnosti, ktoré vám umožnia vytvárať vlastné projekty.
Viac informacií preberáme na kurze:
Kurz PHP - Programovanie dynamických webových stránok v PHP a úvod do AJAXu
Marián Knězek