Menu
Coddy logo textTech

The Ternary Operator

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 30 de 71.

Quando você tem um if-else simples que apenas atribui um valor com base em uma condição, o PHP oferece uma maneira mais curta de escrevê-lo: o operador ternário.

A sintaxe usa ? e : para criar uma condicional compacta de uma linha:

<?php
$age = 20;

// Usando if-else
if ($age >= 18) {
    $status = "adult";
} else {
    $status = "minor";
}

// A mesma coisa com o operador ternário
$status = $age >= 18 ? "adult" : "minor";

echo $status; // adult
?>

A estrutura é: condition ? value_if_true : value_if_false.

PHP avalia a condição primeiro. Se for verdadeira, a expressão retorna o valor após ?. Se falsa, retorna o valor após :.

<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Reprovado

$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Bem-vindo de volta!
?>

O operador ternário é perfeito para atribuições simples de ou/ou. Para lógica mais complexa com múltiplas condições, use instruções if-elseif-else para melhor legibilidade.

challenge icon

Desafio

Fácil

Leia dois inteiros da entrada: um score e um passingScore.

Use o operador ternário para determinar o resultado com base no seguinte:

  • Se score for maior ou igual a passingScore, o resultado deve ser Passed
  • Caso contrário, o resultado deve ser Failed

Imprima o resultado na primeira linha.

Em seguida, leia um inteiro quantity da entrada. Use o operador ternário para determinar a mensagem de envio:

  • Se quantity for maior que 10, a mensagem deve ser Free shipping
  • Caso contrário, a mensagem deve ser Standard shipping

Imprima a mensagem de envio na segunda linha.

Exemplo:

Se as entradas forem 75, 60 e 15, a saída deve ser:

Passed
Free shipping

Se as entradas forem 45, 50 e 5, a saída deve ser:

Failed
Standard shipping

Folha de consulta

O operador ternário fornece uma maneira compacta de escrever atribuições simples de if-else em uma única linha.

A sintaxe é: condition ? value_if_true : value_if_false

<?php
$age = 20;

// Using if-else
if ($age >= 18) {
    $status = "adult";
} else {
    $status = "minor";
}

// Same thing with ternary operator
$status = $age >= 18 ? "adult" : "minor";

echo $status; // adult
?>

O PHP avalia a condição primeiro. Se verdadeira, retorna o valor após ?. Se falsa, retorna o valor após :.

<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail

$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>

Use o operador ternário para atribuições simples de ou-ou. Para lógica complexa com múltiplas condições, use instruções if-elseif-else para melhor legibilidade.

Experimente você mesmo

<?php
// Ler entrada
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));

// TODO: Escreva seu código abaixo
// Use o operador ternário para determinar se a pontuação é aprovada ou reprovada


// Use o operador ternário para determinar a mensagem de envio


// Exibir os resultados
echo $result . "\n";
echo $shippingMessage;
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos