PHP turi standartines valdymo srauto konstrukcijas — sąlyginius operatorius (, , ), ciklus (, , ) ir šakojimą (, ) — plius keletą savitų ypatybių, tokių kaip masyvams ir modernus reiškinys.
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)
Nulinio slinkimo operatorius ?? yra intensyviai naudojamas PHP numatytosioms reikšmėms (grąžina dešinę pusę, jei kairė pusė yra null arba neapibrėžta) — švariau nei isset() patikros.
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 reiškinys (PHP 8) yra modernus switch pagerinimas: grąžina reikšmę, naudoja griežtą (===) palyginimą ir neturi pro-praslydimo (nereikalingas break) — pageidaujamas naujame 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 yra idiomatinis, dažniausiai naudojamas ciklas PHP, skirtas masyvų iteracijai (su $key => $value forma asociatyviiems masyvams).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Valdymo srautas yra pagrindinė logikos išreiškimo mechanika, naudojama kiekvienoje programoje, todėl PHP konstrukcijų supratimas yra pagrindinės kasdieninės žinios.
Dauguma jų yra standartinės, bet kelios PHP-specifinės dalys yra svarbios: foreach yra idiomatinis, dominuojantis ciklas iteruojant PHP nesuskaičiuojamus masyvus (su $key => $value forma žemėlapiams); nulinio slinkimo operatorius ?? (ir ??=) yra intensyviai naudojamas švariam numatytos reikšmės tvarkymui (savita PHP idioma); ir modernus match reiškinys (PHP 8) yra svarbus switch pagerinimas — grąžina reikšmę, naudoja griežtą palyginimą ir eliminuoja pro-praslydimo klaidas (klasikinį switch pavojų pamiršti break).
Žinant šias konstrukcijas ir pageidaujant šiuolaikinių, saugesniu formų (match vietoj switch, ?? numatytosioms reikšmėms), yra kasdieninės žinios, skirtos rašyti švariems, idionatiniams, be klaidų PHP logikai, atspindinčiai geranų tiek fundamentų, tiek šiuolaikinio PHP pagerinimų žinojimą.