PHP are construcțiile standard de control al fluxului — condiționale (, , ), bucle (, , ) și ramificări (, ) — plus câteva caracteristici distinctive precum pentru masive și expresia modernă .
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)
Operatorul null coalescing ?? este foarte des folosit în PHP pentru valori implicite (returnează partea dreaptă dacă stânga este null sau nedefinită) — mai curat decât verificările isset().
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",
};
Expresia match (PHP 8) este o îmbunătățire modernă față de switch: returnează o valoare, folosește comparație strictă (===) și nu are fall-through (nu este nevoie de break) — preferată în codul nou.
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 este bucla idiomatică, cea mai utilizată în PHP pentru iterarea masivelor (cu forma $key => $value pentru masivele asociative).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Controlul fluxului este mecanismul de bază pentru exprimarea logicii, folosit în fiecare program, deci înțelegerea construcțiilor PHP este cunoștință fundamentală zilnică.
Majoritatea sunt standard, dar câteva puncte specifice PHP contează: foreach este bucla idiomatică, dominantă pentru iterarea masivelor omniprezente în PHP (cu forma $key => $value pentru hărți); operatorul null coalescing ?? (și ??=) este foarte des folosit pentru tratarea curată a valorilor implicite (o idiomă distinctă PHP); și expresia modernă match (PHP 8) este o îmbunătățire importantă față de switch-ul predispus la erori — returnând o valoare, folosind comparație strictă și eliminând bug-uri de fall-through (pericolul clasic al switch-ului de a uita break).
Cunoașterea acestor construcții și preferarea formelor moderne, mai sigure (match în locul switch, ?? pentru valori implicite), este cunoștință zilnică pentru scrierea unei logici PHP curate, idiomatice și fără greșeli, reflectând fluență atât cu fundamentele cât și cu îmbunătățirile PHP-ului modern.