PHP har de standard kontrollflytstrukturene — betingelses-setninger (, , ), løkker (, , ) og forgreninger (, ) — pluss noen få særegne funksjoner som for matriser og det moderne -uttrykket.
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)
Den null coalescing operatoren ?? er mye brukt i PHP for standardverdier (returnerer høyresiden hvis venstresiden er null eller udefinert) — renere enn isset()-kontroller.
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",
};
Det match-uttrykket (PHP 8) er en moderne forbedring av switch: det returnerer en verdi, bruker streng (===) sammenligning, og har ingen gjennomgang (ingen break nødvendig) — foretrukket i ny kode.
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 er den idiomatiske, mest brukte løkken i PHP for iterasjon av matriser (med formen $key => $value for assosiative matriser).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Kontrollflyt er mekanismen for å uttrykke logikk, brukt i hvert program, så forståelse av PHPs konstruksjoner er grunnleggende, daglig kunnskap.
De fleste er standard, men noen få PHP-spesifikke poeng er viktige: foreach er den idiomatiske, dominerende løkken for iterasjon av PHPs allestedsnærværende matriser (med formen $key => $value for kart); null coalescing operatoren ?? (og ??=) er mye brukt for ren standardbehandling (et særegent PHP-idiom); og det moderne match-uttrykket (PHP 8) er en viktig forbedring av den feilbarlig switch — returnerer en verdi, bruker streng sammenligning, og eliminerer gjennomgangsfeill (det klassiske switch-fallet ved glemme break).
Å kjenne til disse konstruksjonene, og foretrekke de moderne, sikrere formene (match fremfor switch, ?? for standardverdier), er daglig kunnskap for å skrive ren, idiomatisk, feilfri PHP-logikk, som gjenspeiler flytende beherskelse av både grunnleggende PHP og moderne PHPs forbedringer.