PHP ha i costrutti di controllo del flusso standard — condizionali (, , ), cicli (, , ) e ramificazioni (, ) — più un paio di funzionalità caratteristiche come per gli array e la moderna espressione .
PHP ha i costrutti di controllo del flusso standard — condizionali (, , ), cicli (, , ) e ramificazioni (, ) — più un paio di funzionalità caratteristiche come per gli array e la moderna espressione .
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)
L'operatore null coalescing ?? è ampiamente utilizzato in PHP per i valori predefiniti (restituisce il lato destro se il sinistro è null o non impostato) — più pulito dei controlli 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",
};
L'espressione match (PHP 8) è un miglioramento moderno rispetto a switch: restituisce un valore, utilizza il confronto rigoroso (===), e non ha fall-through (non è necessario break) — preferito nel nuovo codice.
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 è il ciclo idiomatico e più utilizzato in PHP per iterare gli array (con la forma $key => $value per gli array associativi).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Il controllo del flusso è il meccanismo di base per esprimere la logica, utilizzato in ogni programma, quindi comprendere i costrutti di PHP è una conoscenza fondamentale quotidiana.
La maggior parte sono standard, ma alcuni punti specifici di PHP sono importanti: foreach è il ciclo idiomatico e dominante per iterare gli array ubiqui di PHP (con la forma $key => $value per le mappe); l'operatore null coalescing ?? (e ??=) è ampiamente utilizzato per la gestione pulita dei valori predefiniti (un idioma distintamente PHP); e la moderna espressione match (PHP 8) è un miglioramento importante rispetto al soggetto a errori switch — restituisce un valore, utilizza il confronto rigoroso, ed elimina i bug di fall-through (la classica insidia di switch di dimenticare break).
Conoscere questi costrutti, e preferire le forme moderne e più sicure (match rispetto a switch, ?? per i valori predefiniti), è una conoscenza quotidiana per scrivere la logica PHP pulita, idiomatica e priva di bug, riflettendo la padronanza sia dei fondamenti che dei miglioramenti del PHP moderno.