PHP possui os construtos de controle de fluxo padrão — condicionais (, , ), laços (, , ) e ramificação (, ) — além de alguns recursos distintivos como para arrays e a expressão moderna.
PHP possui os construtos de controle de fluxo padrão — condicionais (, , ), laços (, , ) e ramificação (, ) — além de alguns recursos distintivos como para arrays e a expressão 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)
O operador null coalescing ?? é amplamente usado em PHP para valores padrão (retorna o lado direito se o esquerdo é null ou indefinido) — mais limpo que verificações 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",
};
A expressão match (PHP 8) é uma melhoria moderna em relação ao switch: retorna um valor, usa comparação estrita (===) e não tem fall-through (não precisa de break) — preferida em código novo.
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 é o laço idiomático e mais usado em PHP para iterar arrays (com a forma $key => $value para arrays associativos).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Controle de fluxo é o mecanismo básico para expressar lógica, usado em todo programa, então entender os construtos do PHP é conhecimento fundamental do dia a dia.
A maioria é padrão, mas alguns pontos específicos do PHP importam: foreach é o laço idiomático e dominante para iterar arrays ubíquos do PHP (com a forma $key => $value para maps); o operador null coalescing ?? (e ??=) é amplamente usado para manipulação limpa de padrões (um idioma distintivamente PHP); e a expressão match moderna (PHP 8) é uma melhoria importante em relação ao switch propenso a erros — retornando um valor, usando comparação estrita e eliminando bugs de fall-through (a armadilha clássica de switch de esquecer break).
Conhecer esses construtos e preferir as formas modernas e seguras (match em vez de switch, ?? para padrões) é conhecimento do dia a dia para escrever lógica PHP limpa, idiomática e sem bugs, refletindo fluência tanto com os fundamentos quanto com as melhorias do PHP moderno.