Início

Responsive Web Development

UA11 — PHP: Estruturas de Controle

Operadores, condicionais, laços e funções são os blocos de construção de qualquer lógica de programação em PHP. Dominar esses elementos é a base para criar scripts dinâmicos e processamento de dados no servidor.

Operadores relacionais e lógicos

OperadorSignificado
==Igual a (valor)
===Idêntico a (valor e tipo)
!= / <>Diferente de
!==Não idêntico
< / <=Menor que / menor ou igual
> / >=Maior que / maior ou igual
&& / andE lógico
|| / orOU lógico
xorOU exclusivo
!Negação

if / elseif / else

$media = 8.5;

if ($media >= 9) {
    $conceito = "A";
} elseif ($media >= 8) {
    $conceito = "B";
} elseif ($media >= 7) {
    $conceito = "C";
} else {
    $conceito = "Reprovado";
}
echo $conceito; // B

switch / case / break / default

Substitui múltiplos if/elseif quando se compara uma variável com vários valores fixos. O break impede que os casos seguintes sejam executados.

$conceito = "B";

switch ($conceito) {
    case "A":
        echo "Excelente";
        break;
    case "B":
        echo "Plenamente aprovado";
        break;
    case "C":
        echo "Aprovado";
        break;
    default:
        echo "Reprovado";
}
Fundamentos: Estruturas de Controle — O Caminho Principal (if/elseif/else) e O Caminho Multi-vias (switch)
Estruturas de Controle: if/else e switch

Operador ternário

Versão compacta do if/else para expressões simples: condição ? valor_se_true : valor_se_false

$media = 7.5;
$situacao = ($media >= 7) ? "Aprovado" : "Reprovado";
echo $situacao; // Aprovado

while — condição verificada antes

$i = 1;
while ($i <= 10) {
    echo $i;
    $i++;
}
// Saída: 12345678910
// Se $i já for > 10 na entrada, o bloco nunca executa

do while — condição verificada depois

$i = 1;
do {
    echo $i;
    $i++;
} while ($i <= 10);
// Saída: 12345678910
// O bloco executa pelo menos uma vez, mesmo se condição for falsa

for — número fixo de iterações

// Sintaxe: for (inicialização; condição; incremento)
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
// Saída: 12345678910

// Sintaxe alternativa com endfor
for ($i = 1; $i <= 5; $i++):
    echo $i . " ";
endfor;
O Ciclo de Vida dos Dados: Estruturas de Repetição — for, do...while, while, break e continue
Estruturas de Repetição: for / while / do...while

continue e break

// continue — pula para a próxima iteração
for ($i = 1; $i <= 10; $i++) {
    if ($i >= 3 && $i <= 6) continue;
    echo $i . " ";
}
// Saída: 1 2 7 8 9 10

// break — encerra o laço imediatamente
for ($i = 1; $i <= 10; $i++) {
    if ($i === 6) break;
    echo $i . " ";
}
// Saída: 1 2 3 4 5

Práticas Modernas — Estruturas de Controle PHP

match (PHP 8.0+): substitui switch com comparação estrita (===), retorna valor e não precisa de break.

$conceito = "B";
$msg = match($conceito) {
    "A"      => "Excelente",
    "B"      => "Plenamente aprovado",
    "C"      => "Aprovado",
    default => "Reprovado",
};
echo $msg; // Plenamente aprovado

Null coalescing ?? (PHP 7+): retorna o lado esquerdo se não for null, caso contrário o lado direito — evita verificações manuais com isset.

$nome = $_GET['nome'] ?? "Visitante";

Null coalescing assignment ??= (PHP 7.4+): atribui apenas se o lado esquerdo for null.

$usuario['perfil'] ??= "padrão";

Dicas para a prova — UA11

  • == compara apenas valor; === compara valor e tipo (identidade).
  • O break dentro do switch impede que os casos seguintes sejam executados (fall-through).
  • while: condição verificada antes — pode nunca executar se já for falsa.
  • do while: condição verificada depois — executa pelo menos uma vez.
  • for: usado quando o número de iterações é conhecido.
  • continue = pula o restante da iteração atual; break = sai do laço completamente.
  • Em while/do while, cuidado com continue: o incremento deve ficar antes do continue, senão loop infinito.

Referências bibliográficas desta UA

  • Saraiva, M. O.; Barreto, J. S. Desenvolvimento de Sistemas com PHP. Porto Alegre: SAGAH, 2018.