Η PHP διαθέτει τα standard control-flow constructs — conditionals (, , ), loops (, , ) και branching (, ) — συν μερικά διακριτικά χαρακτηριστικά όπως το για arrays και την σύγχρονη expression.
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 coalescing operator ?? χρησιμοποιείται εκτενώς στη PHP για προεπιλογές (επιστρέφει τη δεξιά πλευρά εάν η αριστερή είναι null ή unset) — καθαρότερο από τους 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",
};
Η match expression (PHP 8) είναι μια σύγχρονη βελτίωση έναντι του switch: επιστρέφει μια τιμή, χρησιμοποιεί αυστηρή σύγκριση (===) και δεν έχει fall-through (δεν χρειάζεται break) — προτιμάται στον νέο κώδικα.
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 είναι το idiomatic, πιο χρησιμοποιούμενο loop στη PHP για την επανάληψη arrays (με τη μορφή $key => $value για associative arrays).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Το control flow είναι ο βασικός μηχανισμός για την έκφραση λογικής, που χρησιμοποιείται σε κάθε πρόγραμμα, επομένως η κατανόηση των constructs της PHP είναι θεμελιώδης καθημερινή γνώση.
Τα περισσότερα είναι standard, αλλά μερικά σημεία ειδικά για τη PHP έχουν σημασία: το foreach είναι το idiomatic, κυρίαρχο loop για την επανάληψη των παγκόσμιων arrays της PHP (με τη μορφή $key => $value για maps)· το null coalescing operator ?? (και ??=) χρησιμοποιείται εκτενώς για καθαρή διαχείριση προεπιλογών (ένα χαρακτηριστικό idiom της PHP)· και η σύγχρονη match expression (PHP 8) είναι μια σημαντική βελτίωση έναντι του error-prone switch — επιστρέφοντας μια τιμή, χρησιμοποιώντας αυστηρή σύγκριση και εξαλείφοντας fall-through bugs (το κλασικό switch pitfall του ξεχασμένου break).
Η γνώση αυτών των constructs και η προτίμηση των σύγχρονων, ασφαλέστερων μορφών (match έναντι switch, ?? για προεπιλογές) είναι καθημερινή γνώση για τη συγγραφή καθαρής, idiomatic, χωρίς σφάλματα PHP λογικής, που αντικατοπτρίζει τη γλώσσα και με τα θεμέλια και με τις βελτιώσεις της σύγχρονης PHP.