Fundamentos do PHP

0/25 aulas0%
teoria

Estruturas Condicionais: if, else if, else e switch

Aprenda sobre estruturas condicionais: if, else if, else e switch

35 min
Aula 1 de 5

Módulo 2: Estruturas de Controle e Arrays

Aula: Estruturas Condicionais: if, else if, else e switch

Olá, futuro(a) desenvolvedor(a) PHP! 👋 Nesta aula, vamos mergulhar em um dos pilares fundamentais de qualquer linguagem de programação: as estruturas condicionais. Elas permitem que seu código tome decisões, executando blocos de instruções diferentes com base em condições específicas. Pense nelas como o "cérebro" do seu programa, decidindo qual caminho seguir! 🧠

Ao final desta aula, você será capaz de:

  • Compreender a lógica por trás das estruturas condicionais.
  • Utilizar as declarações if, else if e else para criar fluxos de execução controlados.
  • Aplicar a declaração switch para lidar com múltiplos casos de forma elegante.

Vamos começar!


1. Introdução às Estruturas Condicionais

Em PHP, assim como em outras linguagens, as estruturas condicionais são usadas para executar diferentes blocos de código dependendo se uma condição é verdadeira (true) ou falsa (false). Isso é essencial para criar programas dinâmicos e interativos que respondem a diferentes entradas ou estados.

Imagine que você está construindo um sistema de login. Você precisa verificar se o usuário digitou a senha correta. Se sim, ele é logado; se não, uma mensagem de erro é exibida. Essa "verificação" é feita usando estruturas condicionais.

As principais estruturas condicionais em PHP são:

  • if
  • else
  • else if (ou elseif)
  • switch

Vamos explorar cada uma delas em detalhes!


2. A Declaração if

A declaração if é a mais básica das estruturas condicionais. Ela executa um bloco de código somente se a condição especificada for verdadeira.

Sintaxe

<?php
if (condicao) {
    // Código a ser executado se a condição for verdadeira
}
?>
  • condicao: Uma expressão que é avaliada como true ou false.
  • { ... }: O bloco de código que será executado. Se houver apenas uma linha de código, as chaves são opcionais, mas altamente recomendadas para clareza e para evitar erros futuros.

Como funciona?

O PHP avalia a condicao. Se o resultado for true, o código dentro das chaves {} é executado. Se for false, o bloco é ignorado e o programa continua a execução após o if.

Exemplo

<?php
$idade = 18;
 
if ($idade >= 18) {
    echo "Você é maior de idade e pode dirigir. 🚗";
}
 
echo "\nFim da verificação de idade.";
?>

Saída:

Você é maior de idade e pode dirigir. 🚗
Fim da verificação de idade.

Se $idade fosse 17, a mensagem "Você é maior de idade..." não seria exibida, mas "Fim da verificação..." ainda seria.

Valores "Truthy" e "Falsy" em PHP

É importante notar que, em PHP, algumas expressões são avaliadas como true ou false em um contexto booleano, mesmo que não sejam explicitamente true ou false.

Valores avaliados como false (falsy):

  • O booleano false
  • O inteiro 0 (zero)
  • O float 0.0 (zero ponto zero)
  • A string vazia ""
  • A string "0" (o caractere zero)
  • Um array vazio []
  • O valor especial NULL
  • Objetos SimpleXML criados a partir de tags vazias

Qualquer outro valor é considerado true (truthy).

<?php
$variavel = "Olá Mundo"; // string não vazia
if ($variavel) {
    echo "A variável é 'truthy'.\n"; // Esta linha será executada
}
 
$numero = 0; // inteiro zero
if ($numero) {
    echo "O número é 'truthy'.\n"; // Esta linha NÃO será executada
}
 
$lista = []; // array vazio
if ($lista) {
    echo "A lista é 'truthy'.\n"; // Esta linha NÃO será executada
}
?>

3. A Declaração else

A declaração else é usada em conjunto com o if. Ela fornece um bloco de código alternativo para ser executado se a condição do if for falsa.

Sintaxe

<?php
if (condicao) {
    // Código a ser executado se a condição for verdadeira
} else {
    // Código a ser executado se a condição for falsa
}
?>

Como funciona?

Primeiro, a condicao do if é avaliada.

  • Se for true, o bloco do if é executado e o bloco do else é ignorado.
  • Se for false, o bloco do if é ignorado e o bloco do else é executado.

Exemplo

<?php
$hora = 14;
 
if ($hora < 12) {
    echo "Bom dia! ☀️";
} else {
    echo "Boa tarde! ☕";
}
 
echo "\nTenha um ótimo dia!";
?>

Saída:

Boa tarde! ☕
Tenha um ótimo dia!

4. A Declaração else if (ou elseif)

Quando você precisa testar múltiplas condições em sequência, o else if (ou elseif) é a sua ferramenta. Ele permite adicionar condições adicionais entre o if inicial e um else final (opcional).

Sintaxe

<?php
if (condicao1) {
    // Código se condicao1 for verdadeira
} elseif (condicao2) { // ou else if (condicao2)
    // Código se condicao1 for falsa E condicao2 for verdadeira
} elseif (condicao3) {
    // Código se condicao1 e condicao2 forem falsas E condicao3 for verdadeira
} else {
    // Código se nenhuma das condições anteriores for verdadeira
}
?>

Como funciona?

As condições são avaliadas em ordem, de cima para baixo.

  1. Se condicao1 for true, seu bloco é executado e o restante da estrutura if-elseif-else é ignorado.
  2. Se condicao1 for false, condicao2 é avaliada. Se condicao2 for true, seu bloco é executado e o restante é ignorado.
  3. Esse processo continua para cada elseif.
  4. Se todas as condições if e elseif forem false, o bloco else (se existir) é executado.

else if vs. elseif

Em PHP, else if e elseif são semanticamente idênticos. A diferença é apenas na sintaxe:

  • elseif (uma palavra) é a forma preferida e mais comum em PHP, especialmente quando se usa a sintaxe de dois pontos para estruturas de controle (veremos mais adiante).
  • else if (duas palavras) é mais comum em linguagens como C ou Java.

Ambos funcionam perfeitamente.

Exemplo

<?php
$nota = 75;
 
if ($nota >= 90) {
    echo "Parabéns! Sua nota é A. 🎉";
} elseif ($nota >= 80) { // Poderia ser 'else if ($nota >= 80)'
    echo "Muito bom! Sua nota é B. 👍";
} elseif ($nota >= 70) {
    echo "Bom trabalho! Sua nota é C. 📚";
} else {
    echo "Você precisa estudar mais. Sua nota é D. 😔";
}
 
echo "\nVerificação de nota concluída.";
?>

Saída:

Bom trabalho! Sua nota é C. 📚
Verificação de nota concluída.

5. A Declaração switch

A declaração switch é uma alternativa ao uso de múltiplos elseif quando você precisa comparar uma única expressão com vários valores diferentes. Ela pode tornar o código mais limpo e legível em certas situações.

Sintaxe

<?php
switch (expressao) {
    case valor1:
        // Código a ser executado se expressao == valor1
        break; // Importante!
    case valor2:
        // Código a ser executado se expressao == valor2
        break;
    case valor3:
    case valor4: // Múltiplos cases para o mesmo bloco
        // Código a ser executado se expressao == valor3 ou expressao == valor4
        break;
    default:
        // Código a ser executado se nenhum dos cases anteriores corresponder
        break; // Opcional no final, mas boa prática
}
?>

Como funciona?

  1. A expressao (geralmente uma variável) é avaliada uma única vez.
  2. O resultado da expressao é comparado sequencialmente com os valores de cada case.
  3. Quando um case cujo valor corresponde à expressao é encontrado, o código dentro desse case é executado.
  4. A palavra-chave break é crucial: ela encerra a execução do switch e o programa continua após ele. Sem break, o PHP continuará executando o código dos cases subsequentes (comportamento de "fall-through") até encontrar um break ou o final do switch.
  5. Se nenhum case corresponder, o código dentro do bloco default (se existir) é executado. O default é opcional.

Exemplo

<?php
$diaDaSemana = "Terça";
 
switch ($diaDaSemana) {
    case "Segunda":
        echo "Início da semana! 😴";
        break;
    case "Terça":
    case "Quarta":
    case "Quinta":
        echo "Meio da semana, foco! 💪";
        break;
    case "Sexta":
        echo "Sextou! 🎉";
        break;
    case "Sábado":
    case "Domingo":
        echo "Fim de semana, descanse! 🏖️";
        break;
    default:
        echo "Dia inválido.";
        break;
}
 
echo "\nVerificação do dia concluída.";
?>

Saída:

Meio da semana, foco! 💪
Verificação do dia concluída.

O perigo do "Fall-through" (sem break)

<?php
$nivel = 1;
 
switch ($nivel) {
    case 1:
        echo "Você é um iniciante. ";
    case 2:
        echo "Você tem acesso básico. ";
    case 3:
        echo "Você tem acesso total. ";
        break; // Este break impede que vá para o default
    default:
        echo "Nível desconhecido.";
        break;
}
echo "\n";
?>

Saída:

Você é um iniciante. Você tem acesso básico. Você tem acesso total. 

Como você pode ver, sem o break no case 1 e case 2, o código "cai" para o próximo case e executa suas instruções também. Isso pode ser útil em cenários muito específicos, mas na maioria das vezes é uma fonte de bugs se não for intencional. Sempre use break a menos que você tenha uma razão muito específica para não fazê-lo.

Sintaxe Alternativa para if, elseif, else e switch

PHP oferece uma sintaxe alternativa para estruturas de controle, usando dois pontos (:) em vez de chaves ({}) e endif;, endfor;, endwhile; ou endswitch; para finalizar. Esta sintaxe é frequentemente usada em arquivos de template HTML para melhorar a legibilidade.

Exemplo com if:

<?php
$logado = true;
?>
 
<!DOCTYPE html>
<html>
<head>
    <title>Sintaxe Alternativa</title>
</head>
<body>
    <?php if ($logado): ?>
        <p>Bem-vindo(a) de volta!</p>
    <?php else: ?>
        <p>Por favor, faça login.</p>
    <?php endif; ?>
</body>
</html>

Exemplo com switch:

<?php
$cor = "azul";
?>
 
<!DOCTYPE html>
<html>
<head>
    <title>Sintaxe Alternativa Switch</title>
</head>
<body>
    <?php switch ($cor):
        case "vermelho": ?>
            <p style="color: red;">Sua cor favorita é vermelho.</p>
            <?php break;
        case "azul": ?>
            <p style="color: blue;">Sua cor favorita é azul.</p>
            <?php break;
        default: ?>
            <p>Não sei sua cor favorita.</p>
            <?php break;
    endswitch; ?>
</body>
</html>

Essa sintaxe é uma questão de preferência e contexto. Em arquivos PHP puros, as chaves são mais comuns. Em templates misturando HTML e PHP, a sintaxe alternativa pode ser mais limpa.


6. Resumo e Próximos Passos

Parabéns! 🎉 Você dominou as estruturas condicionais em PHP.

  • O if executa um bloco de código se uma condição for verdadeira.
  • O else oferece uma alternativa se a condição do if for falsa.
  • O else if (ou elseif) permite testar múltiplas condições em sequência.
  • O switch é ideal para comparar uma expressão com vários valores fixos, tornando o código mais limpo e legível em certos cenários, e o break é essencial para evitar o "fall-through".

A capacidade de tomar decisões no seu código é fundamental para a lógica de qualquer aplicação. Pratique bastante com esses conceitos, pois eles serão a base para funcionalidades mais complexas.

No próximo módulo, vamos explorar as Estruturas de Repetição (Loops), que nos permitem executar blocos de código várias vezes, e os Arrays, que são estruturas de dados poderosas para armazenar coleções de informações.

Até a próxima aula! 🚀

© 2025 Escola All Dev. Todos os direitos reservados.

Estruturas Condicionais: if, else if, else e switch - Fundamentos do PHP | escola.all.dev.br