PHP má standardní řídicí struktury — podmínky (, , ), smyčky (, , ) a větvení (, ) — plus několik charakteristických vlastností, jako je pro pole a moderní výraz .
ifswitchmatchforforeachwhilebreakcontinueforeachmatch<?php
if ($score >= 90) {
$grade = "A";
} elseif ($score >= 80) {
$grade = "B";
} else {
$grade = "F";
}
// ternary and null coalescing
$status = $age >= 18 ? "adult" : "minor";
$name = $input ?? "default"; // ?? — use default if null/unset (PHP 7+)
$value ??= "x"; // ??= assign if null (PHP 7.4)
Operátor null coalescing ?? je v PHP intenzivně používán pro výchozí hodnoty (vrací pravou stranu, pokud je levá strana null nebo není nastavena) — čistší alternativa ke kontrolám isset().
switch ($day) {
case "Sat":
case "Sun":
$type = "weekend"; break; // ⚠️ break needed or it falls through
default:
$type = "weekday";
}
// match (PHP 8) — cleaner: returns a value, STRICT comparison, NO fall-through
$type = match($day) {
"Sat", "Sun" => "weekend", // multiple values, no break needed
default => "weekday",
};
Výraz match (PHP 8) je moderním zlepšením oproti switch: vrací hodnotu, používá přísné srovnání (===) a nemá fallthrough (není potřeba break) — preferuje se v novém kódu.
for ($i = 0; $i < 10; $i++) { }
foreach ($items as $item) { } // iterate array values
foreach ($map as $key => $value) { } // keys + values — the PHP idiom for arrays
while ($condition) { }
do { } while ($condition);
foreach je idiomatická, nejčastěji používaná smyčka v PHP pro iteraci polí (s formulací $key => $value pro asociativní pole).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Řízení toku je základní mechanismus pro vyjádření logiky, používaný v každém programu, takže pochopení PHP konstrukcí je základní každodenní znalost.
Většina je standardní, ale několik PHP-specifických bodů je důležitých: foreach je idiomatická, dominantní smyčka pro iteraci všudypřítomných PHP polí (s formulací $key => $value pro mapy); operátor null coalescing ?? (a ??=) je intenzivně používán pro čisté zpracování výchozích hodnot (charakteristické PHP idiom); a moderní výraz match (PHP 8) je důležitým zlepšením oproti problematickému switch — vrací hodnotu, používá přísné srovnání a eliminuje fallthrough chyby (klasické switch nebezpečí zapomenutého break).
Znalost těchto konstrukcí a preferování moderních, bezpečnějších forem (match místo switch, ?? pro výchozí hodnoty) je každodenní znalostí pro psaní čistého, idiomatického a bezchybného PHP kódu, což odráží znalost jak základů, tak moderních vylepšení PHP.