PHP Controle de fluxo Básico
Controle de fluxo
O controle de fluxo em PHP permite que o programa tome decisões e repita tarefas. As estruturas condicionais if, elseif e else executam blocos conforme condições booleanas. O switch compara uma expressão com vários casos, enquanto o match (PHP 8+) é uma alternativa mais moderna e segura, que retorna um valor e faz comparação estrita (===).
Os loops for, while, do-while e foreach repetem instruções. O for é ideal quando se sabe o número de iterações; o while verifica a condição antes; o do-while executa pelo menos uma vez; e o foreach percorre arrays de forma simples.
Combinar essas estruturas permite criar lógicas complexas, como validar dados, processar listas e gerar relatórios. Neste card, você verá exemplos práticos e exercícios para dominar cada uma.
Pontos-chave
if/elseif/elseexecutam blocos condicionais com base em expressões booleanas.switchcompara uma variável com múltiploscasee usabreakpara evitar fall-through.match(PHP 8+) retorna um valor e usa comparação estrita, sem necessidade debreak.for,while,do-whileeforeachrepetem código; escolha o loop conforme a situação.foreaché a forma mais idiomática de percorrer arrays em PHP.
<?php
// Exemplo de controle de fluxo em PHP
$nota = 7.5;
// if/elseif/else
if ($nota >= 7) {
echo "Aprovado\n";
} elseif ($nota >= 5) {
echo "Recuperação\n";
} else {
echo "Reprovado\n";
}
// switch
$dia = "segunda";
switch ($dia) {
case "segunda":
echo "Início da semana\n";
break;
case "sexta":
echo "Fim de semana!\n";
break;
default:
echo "Dia comum\n";
}
// match (PHP 8+)
$codigo = 2;
$mensagem = match ($codigo) {
1 => "Um",
2 => "Dois",
default => "Outro",
};
echo $mensagem . "\n";
// for
echo "Contagem: ";
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
}
echo "\n";
// while
$contador = 3;
while ($contador > 0) {
echo "Faltam $contador\n";
$contador--;
}
// do-while
$j = 1;
do {
echo "Executa pelo menos uma vez: $j\n";
$j++;
} while ($j <= 2);
// foreach
$frutas = ["maçã", "banana", "laranja"];
foreach ($frutas as $fruta) {
echo "Fruta: $fruta\n";
}