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
| Operador | Significado |
|---|---|
== | 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 |
&& / and | E lógico |
|| / or | OU lógico |
xor | OU 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";
}
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;
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 aprovadoNull 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
breakdentro doswitchimpede 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 comcontinue: o incremento deve ficar antes docontinue, 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.