Tutorial de PHP: Como Usar o Operador Ternário (?:) - IF/ELSE em 1 Linha

🎯 O que você vai aprender nesta aula:

  • O que é o Operador Ternário (?:).
  • Como transformar blocos gigantes de IF/ELSE em apenas uma linha.
  • Exemplos práticos de uso no dia a dia.
  • Bônus Sênior: Conheça o Operador de Coalescência Nula (??).

Em um tutorial passado do nosso curso de PHP, mencionamos uma verdade absoluta: o bom programador é "preguiçoso". Mas calma, não no sentido pejorativo da palavra! Dizemos isso no sentido de buscar sempre a solução mais simples, eficiente, limpa e direta para um problema.

O que é o Operador Ternário no PHP ( ?: )

Você já deve estar cansado de escrever estruturas condicionais clássicas, que ocupam várias linhas de código no seu arquivo, como esta:

<?php
    if (condicao_for_verdadeira) {
        $resultado = "Faz isso";
    } else {
        $resultado = "Faz aquilo";
    }
?>

Achando que isso era escrever demais para tomar decisões simples, os criadores da linguagem implementaram o Operador Ternário (representado pelos símbolos ?:). Ele é, basicamente, um IF e um ELSE comprimidos em uma única linha!

A Sintaxe do Operador Ternário

A estrutura funciona como uma pergunta e duas respostas possíveis:

teste_condicional ? valor_se_TRUE : valor_se_FALSE;

Ou seja, você faz um teste (uma pergunta). O ponto de interrogação ? avalia isso. Se for verdade, ele retorna o que está imediatamente após a interrogação. Se for falso, ele ignora a primeira opção, pula os dois pontos : e retorna o último valor.

Exemplo 1: Verificação de Idade

Exercício: Crie um script PHP que pede a idade de um usuário. Se for menor de 18, diga que ele ainda não pode dirigir. Se for maior ou igual, avise que ele já pode dirigir. Use o operador ternário.

Veja como o código fica extremamente curto:

<html>
<head>
    <title>Apostila PHP Progressivo</title>
</head>
<body>
    <form action="" method="get">
        Sua Idade: <input type="number" name="age" required />
        <input type="submit" value="Testar" />
    </form> 

<?php 
    if(isset($_GET['age'])) {
        $idade = $_GET['age'];
        
        // A mágica acontece aqui, direto no echo!
        echo ($idade < 18) ? "Você ainda não pode dirigir." : "Você JÁ pode dirigir!";
    }
?>
</body>
</html>

🚀 Escreva menos, programe mais!

A diferença entre um código amador e um código profissional muitas vezes está nos detalhes, como saber a hora certa de usar um operador ternário. Para treinar essas "sacadas" de programação com centenas de exemplos práticos, baixe agora a Apostila PHP Progressivo. Estude no seu ritmo, sem depender da internet!

Baixar Apostila Completa →

Exemplo 2: Sistema de Notas de Aluno

Exercício: Crie um script em PHP que pergunte a média final do aluno. Se for menor que 7, avise que ele foi reprovado. Igual ou acima de 7, ele passou direto.

<html>
<head>
    <title>Apostila PHP Progressivo</title>
</head>
<body>
    <form action="" method="get">
        Média do Aluno: <input type="number" step="0.1" name="media" required />
        <input type="submit" value="Verificar Status" />
    </form> 

<?php 
    if(isset($_GET['media'])) {
        $media = $_GET['media'];
        
        // Salvando o resultado do ternário direto dentro de uma variável
        $status = ($media < 7) ? "Reprovado" : "Aprovado";
        
        echo "<h3>O aluno está: $status</h3>";
    }
?>
</body>
</html>

🔥 Bônus Sênior: O Operador Null Coalescing (??)

Você reparou que nos exemplos usamos isset($_GET['nome_do_campo']) para verificar se o formulário foi enviado antes de tentar usar a variável? Se não fizermos isso, o PHP exibe um erro de "Undefined index".

Nas versões mais recentes do PHP (7+), foi criado um "irmão" mais novo para o operador ternário, focado exatamente nisso: o Operador de Coalescência Nula (??). Ele verifica se algo existe; se existir, ele usa. Se não existir (for nulo), ele usa um valor padrão. Exemplo rápido:


$nome = $_GET['usuario'] ?? 'Visitante Anônimo';

Seu código já está ficando com cara de profissional! Vamos para o próximo desafio?

Continuar Curso (Próxima Aula) »

Nenhum comentário:

Veja também: