PHP hat die Standard-Control-Flow-Konstrukte — Bedingungen (, , ), Schleifen (, , ) und Verzweigungen (, ) — plus ein Paar charakteristische Funktionen wie für Arrays und den modernen -Ausdruck.
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)
Der Null-Coalescing-Operator ?? wird in PHP stark für Standards verwendet (gibt die rechte Seite zurück, wenn die linke null oder nicht gesetzt ist) — sauberer als isset()-Prüfungen.
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",
};
Der match-Ausdruck (PHP 8) ist eine moderne Verbesserung gegenüber switch: Er gibt einen Wert zurück, verwendet strikte (===) Vergleiche und hat kein Fall-Through (kein break erforderlich) — in neuem Code bevorzugt.
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 ist die idiomatische, am häufigsten verwendete Schleife in PHP zum Iterieren von Arrays (mit der $key => $value-Form für assoziative Arrays).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Control Flow ist der grundlegende Mechanismus zum Ausdrücken von Logik, wird in jedem Programm verwendet, daher ist das Verständnis von PHPs Konstrukten grundlegende alltägliche Kenntnis.
Die meisten sind Standard, aber ein paar PHP-spezifische Punkte sind wichtig: foreach ist die idiomatische, dominante Schleife zum Iterieren von PHPs allgegenwärtigen Arrays (mit der $key => $value-Form für Maps); der Null-Coalescing-Operator ?? (und ??=) wird stark für saubere Standard-Handhabung verwendet (ein ausgesprochen PHP-Idiom); und der moderne match-Ausdruck (PHP 8) ist eine wichtige Verbesserung gegenüber dem fehleranfälligen switch — gibt einen Wert zurück, verwendet strikte Vergleiche und eliminiert Fall-Through-Fehler (die klassische switch-Falle des vergessenen break).
Das Kennen dieser Konstrukte und das Bevorzugen der modernen, sichereren Formen (match gegenüber switch, ?? für Standards) ist alltägliches Wissen für das Schreiben von sauberer, idiomatischer, fehlerfreier PHP-Logik und spiegelt Vertrautheit sowohl mit den Grundlagen als auch mit PHPs modernen Verbesserungen wider.