Operador Ternário PHP

Resumo : neste tutorial, você aprenderá a usar o operador ternário do PHP para tornar o código mais curto e legível.

Introdução ao operador ternário PHP

O operador ternário é uma abreviação para a if...elseinstrução. Em vez de escrever isto:

<?php

if (condition) {
	$result = value1;
} else {
	$result = value2;
}
Linguagem de código:  HTML, XML  ( xml )

você pode usar isso:

$result = condition ? value1 : value2;Linguagem de código:  PHP  ( php )

Como funciona.

  • Primeiro. PHP avalia o condition. Se for verdade, a expressão à direita retorna value1; caso contrário, ele retornará o value2.
  • Segundo, o PHP atribui o resultado da expressão à direita à $resultvariável.

Como você pode ver, usando o operador ternário, você pode tornar o código mais conciso.

Observe que o nome operador ternário vem do fato de que este operador requer três operandos: expression, value1, value2.

Exemplo de operador ternário PHP

Suponha que você queira exibir o link de login se o usuário não tiver efetuado login e o link de logout se o usuário já tiver efetuado login. Para fazer isso, você pode usar a if...elseinstrução a seguir:

<?php

$is_user_logged_in = false;

if ($is_user_logged_in) {
	$title = 'Logout';
} else {
	$title = 'Login';
}Linguagem de código:  HTML, XML  ( xml )

Neste exemplo, $titleserá 'Login'porque the $is_user_logged_inestá definido como false. O código é bastante extenso. E você pode reduzi-lo usando o operador ternário da seguinte maneira:

<?php

$is_user_logged_in = false;

$title = $is_user_logged_in ? 'Logout' : 'Login';Linguagem de código:  HTML, XML  ( xml )

É muito mais curto agora. Se a linha for longa, você sempre pode dividi-la assim:

<?php

$is_user_logged_in = false;

$title = $is_user_logged_in
			? 'Logout'
			: 'Login';Linguagem de código:  HTML, XML  ( xml )

O operador ternário abreviado

A partir do PHP 5.3, você pode usar o operador ternário abreviado da seguinte maneira:

$result = $initial ?: $default;Linguagem de código:  PHP  ( php )

Nesta sintaxe, o PHP avalia $initialno contexto booleano. Se $initialfor verdade, o PHP atribui o valor de $initialà $resultvariável. Caso contrário, ele atribui $defaultà $resultvariável.

O exemplo a seguir usa o operador ternário abreviado para atribuir o valor de the $patha $urlse the $pathnão estiver vazio. Se $pathestiver vazio, o operador ternário atribui a string literal ‘/’ ao $url:

<?php

$path = '/about';
$url = $path ?: '/';

echo $url; // /aboutLinguagem de código:  HTML, XML  ( xml )

Saída:

/about

Encadeando operadores ternários

Tecnicamente, você pode encadear operadores ternários usando parênteses.

Suponha que você queira mostrar várias mensagens se os usuários forem qualificados e tiverem crédito suficiente. O exemplo a seguir encadeia dois operadores ternários:

<?php

$eligible = true;
$has_credit = false;

$message = $eligible
			? ($has_credit
					? 'Can use the credit'
					: 'Not enough credit')
			: 'Not eligible to buy';

echo $message;
Linguagem de código:  HTML, XML  ( xml )

Na maioria das vezes, encadear vários operadores ternários torna o código mais difícil de ler. Nesse caso, é melhor usar if...elseou if...elseifdeclaração.

Resumo

  • O operador ternário ( ?:) é uma abreviação para a if...elseinstrução.
  • Use o operador ternário quando ele tornar seu código mais conciso e legível.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *