PHP tiene las construcciones estándar de flujo de control — condicionales (, , ), bucles (, , ), y ramificación (, ) — más algunas características distintivas como para arrays y la expresión moderna .
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)
El operador de fusión nula ?? se usa ampliamente en PHP para valores por defecto (devuelve el lado derecho si el izquierdo es null o no está definido) — más limpio que las comprobaciones con 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",
};
La expresión match (PHP 8) es una mejora moderna sobre switch: devuelve un valor, usa comparación estricta (===), y no tiene fall-through (no se necesita break) — preferida en código nuevo.
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 es el bucle idiomático, más utilizado en PHP para iterar arrays (con la forma $key => $value para arrays asociativos).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
El flujo de control es el mecanismo básico para expresar lógica, se usa en todo programa, así que entender las construcciones de PHP es conocimiento fundamental del día a día.
La mayoría son estándar, pero algunos puntos específicos de PHP importan: foreach es el bucle idiomático, dominante para iterar los ubícuos arrays de PHP (con la forma $key => $value para mapas); el operador de fusión nula ?? (y ??=) se usa ampliamente para manejo limpio de valores por defecto (un idioma distintivamente PHP); y la expresión match moderna (PHP 8) es una mejora importante sobre el propenso a errores switch — devuelve un valor, usa comparación estricta, y elimina bugs de fall-through (la trampa clásica de switch de olvidar break).
Conocer estas construcciones, y preferir las formas modernas y seguras (match sobre switch, ?? para valores por defecto), es conocimiento cotidiano para escribir lógica PHP limpia, idiomática y libre de bugs, reflejando fluidez tanto con los fundamentos como con las mejoras del PHP moderno.