PHP posiada standardowe konstrukty kontroli przepływu — warunki (, , ), pętle (, , ) oraz rozgałęzienia (, ) — plus kilka charakterystycznych cech, takich jak dla tablic i nowoczesne wyrażenie .
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 coalescing ?? jest intensywnie używany w PHP dla wartości domyślnych (zwraca prawą stronę, jeśli lewa jest null lub niezdefiniowana) — czystszy niż sprawdzenia 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",
};
Wyrażenie match (PHP 8) to nowoczesne ulepszenie switch: zwraca wartość, używa porównania rygorystycznego (===) i nie ma fall-through (nie jest potrzebny break) — preferowane w nowym kodzie.
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 to idiomatyczna, najczęściej używana pętla w PHP do iteracji po tablicach (z formą $key => $value dla tablic asocjacyjnych).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Kontroła przepływu to podstawowy mechanizm wyrażania logiki, używany w każdym programie, dlatego zrozumienie konstruktów PHP jest fundamentalną, codzienną wiedzą.
Więksość z nich jest standardowa, ale kilka punktów specyficznych dla PHP jest ważne: foreach to idiomatyczna, dominująca pętla do iteracji wszechobecnych tablic PHP (z formą $key => $value dla map); operator null coalescing ?? (i ??=) jest intensywnie używany do czystej obsługi wartości domyślnych (charakterystyczny idiom PHP); a nowoczesne wyrażenie match (PHP 8) to ważne ulepszenie nad podatnym na błędy switch — zwraca wartość, używa rygorystycznego porównania i eliminuje błędy fall-through (klasyczna pułapka switch polegająca na zapomnieniu break).
Znajomość tych konstruktów i preferowanie nowoczesnych, bezpieczniejszych form (match zamiast switch, ?? dla wartości domyślnych) to codzienna wiedza dla pisania czystej, idiomatycznej, wolnej od błędów logiki PHP, odzwierciedlająca biegłość zarówno w podstawach jak i ulepszeniach nowoczesnego PHP.