Operador Ternário em PHP
Suponha que temos o seguinte código, que verifica
se o usuário já tem 18 anos ou não:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Como você pode ver, a construção if-else
é necessária apenas para gravar um determinado
valor na variável $adult. Para
essas tarefas, quando no condicional acontece
apenas a gravação de uma variável, existe
uma solução mais curta através do chamado
operador ternário.
Sua sintaxe é a seguinte:
<?php
$variavel = condicao ? valor1 : valor2;
?>
O operador funciona da seguinte forma: se a condição for verdadeira,
então valor1 é retornado, caso
contrário - valor2. Vamos reescrever
o código apresentado no início da lição usando
o operador ternário:
<?php
$age = 17;
$adult = $age >= 18 ? true : false;
var_dump($adult);
?>
Aliás, é possível não gravar o resultado em
uma variável, mas sim exibi-lo diretamente via var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true : false );
?>
O operador ternário deve ser usado apenas nos casos mais simples, pois seu uso dificulta a compreensão do código.
Suponha que haja uma variável $num que
pode ser negativa ou positiva.
Grave na variável $res o número
1 se a variável $num for maior
ou igual a zero, e o número -1 se a variável
$num for menor que zero.