PHP:ssä on vakiintuneet kontrollin siirtokonstruktit — ehdolliset rakenteet (, , ), silmukat (, , ) ja haarat (, ) — sekä muutama erityispiirre kuten taulukoille ja nykyaikainen -lauseke.
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)
Null-yhdistysoperaattori ?? on PHP:ssä yleisesti käytetty oletusarvoille (palauttaa oikean puolen, jos vasen on null tai määrittämätön) — siistimpi kuin isset() -tarkistukset.
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 -lauseke (PHP 8) on nykyaikainen parannus switch -rakenteeseen: se palauttaa arvon, käyttää striktiä (===) vertailua ja ei ole läpikulkeva (ei break -käskyjä tarvita) — suositeltu uudessa koodissa.
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 on idiomatiikaltaan paras ja eniten käytetty silmukka PHP:ssä taulukoiden iterointiin (muodossa $key => $value assosiatiiVisille taulukoille).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Kontrollin siirto on perusmekanismi logiikan ilmaisemiseen ja sitä käytetään jokaisessa ohjelmassa, joten PHP:n konstruktien ymmärtäminen on olennaista perustietoa.
Suurin osa on vakiomuotoista, mutta muutama PHP-spesifinen seikka on tärkeä: foreach on idiomatiikaltaan hallitseva silmukka PHP:n kaikkialla läsnäolevien taulukoiden iterointiin (muodossa $key => $value kartoille); null-yhdistysoperaattori ?? (ja ??=) on yleisesti käytetty siistiiseen oletusarvokäsittelyyn (PHP:n erityinen idiomi); ja nykyaikainen match -lauseke (PHP 8) on tärkeä parannus virheille alttiiseen switch -rakenteeseen — se palauttaa arvon, käyttää striktiä vertailua ja poistaa läpikulkuvirheet (klassinen switch -sudenkuoppa break -käskyn unohtamisesta).
Näiden konstruktien tunteminen ja nykyaikaisten, turvallisempien muotojen suosiminen (match switch -sijaan, ?? oletusarvoille) on jokapäiväistä tietoa siistin, idiomatiikan mukaisen ja virheetöntä PHP-logiikan kirjoittamiseen, joka osoittaa sujuvuutta sekä perusasioissa että PHP:n nykyaikaisten parannuksissa.