PHP ima standardne kontrole toka redoslijeda — uvjetnosti (, , ), petlje (, , ) i grananje (, ) — plus par distinktivnih značajki kao što su za niz i moderni izraz.
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)
Operator null koalescencije ?? se intenzivno koristi u PHP-u za zadane vrijednosti (vraća desnu stranu ako je lijeva null ili nije postavljena) — čišće od isset() provjera.
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",
};
match izraz (PHP 8) je moderno poboljšanje u odnosu na switch: vraća vrijednost, koristi strogu (===) usporedbu i nema fall-through-a (nije potreban break) — preferirano u novom kodu.
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 idiomatska, najčešće korištena petlja u PHP-u za iteraciju niza (s $key => $value oblikom za asocijativne nizove).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Kontrola toka je osnovni mehanizam za izražavanje logike, koristi se u svakom programu, pa je razumijevanje PHP-evih konstrukata fundamentalno svakodnevno znanje.
Dok je većina standardna, nekoliko PHP-specifičnih točaka je važno: foreach je idiomatska, dominantna petlja za iteraciju PHP-evih sveprisutnih nizova (s $key => $value oblikom za mape) ; operator null koalescencije ?? (i ??=) se intenzivno koristi za čisto rukovanje zadanim vrijednostima (distinktivna PHP idiomatika) ; a moderni match izraz (PHP 8) je važno poboljšanje u odnosu na sklono greškama switch — vraćanje vrijednosti, korištenje stroge usporedbe i eliminacija fall-through greške (klasična switch opasnost zaboravljanja break).
Znanje ovih konstrukata i preferencija modernih, sigurnijih oblika (match umjesto switch, ?? za zadane vrijednosti) je svakodnevno znanje za pisanje čistog, idiomatskog, bez grešaka PHP logike, što odražava tečnost kako u fundamentalnim znanjima tako i u poboljšanjima modernog PHP-a.