PHP heeft de standaard control-flow constructen — conditionalen (, , ), loops (, , ) en branching (, ) — plus een paar kenmerkende features zoals voor arrays en de moderne expression.
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)
De null coalescing operator ?? wordt veel gebruikt in PHP voor defaults (retourneert de rechterkant als de linkerkant null of ongedefinieerd is) — schoner dan isset() controles.
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",
};
De match expression (PHP 8) is een moderne verbetering op switch: het retourneert een waarde, gebruikt strikte (===) vergelijking en heeft geen fall-through (geen break nodig) — aanbevolen in nieuwe code.
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 is de idiosyncratische, meest gebruikte loop in PHP voor het itereren van arrays (met de $key => $value vorm voor associatieve arrays).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Control flow is het basismecanisme voor het uitdrukken van logica, gebruikt in elk programma, dus het begrijpen van PHP's constructen is fundamentele dagelijkse kennis.
De meeste zijn standaard, maar een paar PHP-specifieke punten zijn belangrijk: foreach is de idiosyncratische, dominante loop voor het itereren van PHP's alomtegenwoordige arrays (met de $key => $value vorm voor maps); de null coalescing operator ?? (en ??=) wordt veel gebruikt voor schone standaardbehandeling (een typisch PHP idioom); en de moderne match expression (PHP 8) is een belangrijke verbetering op de foutgevoelige switch — retourneert een waarde, gebruikt strikte vergelijking en elimineert fall-through bugs (de klassieke switch valkuil van het vergeten van break).
Kennis van deze constructen en voorkeur voor de moderne, veiligere vormen (match in plaats van switch, ?? voor defaults) is dagelijkse kennis voor het schrijven van schone, idiosyncratische, bugvrije PHP logica, die vlotheid met zowel de fundamentals als de verbeteringen van moderne PHP weerspiegelt.