Novo ternário

O operador ternário intimida um pouco os novatos em programação, porém o seu uso facilita o desenvolvimento e poupa boas linhas de código.

A sintaxe clássica do ternário é a seguinte:

$resultado = (teste_booleano)?valor_se_verdadeiro:valor_se_falso;

Caso o resultado do teste booleano seja true, a variável $resultado receberá “valor_se_verdadeiro”. Caso o resultado do teste booleano seja false, a variável $resultado receberá “valor_se_falso”.

Vamos ver um exemplo:

$vendedor = true;
$salarioBase = 1000;
$bonus = 500;

$salario = $vendedor?$salarioBase+$bonus:$salarioBase;

Se não usássemos o ternário no exemplo acima, o código ficaria bem maior. Veja:

$vendedor = true;
$salarioBase = 1000;
$bonus = 500;

if( $vendedor ){
       $salario = $salarioBase + $bonus;
}else{
       $salario = $salarioBase;
}

Neste caso, podemos observar facilmente que no exemplo anterior, pouparíamos boas linhas de código.

O que muitos não sabem é que o ternário evoluiu.

O lançamento do PHP 5.3 trouxe consigo funcionalidades que só sairiam no PHP 6 e entre elas está o novo ternário. Eis a sua sintaxe:

$resultado = $verdadeiro?:$falso;

No exemplo acima, a variável resultado vai receber o conteúdo da variável $verdadeiro somente se ela for true. Caso contrário, receberá o conteúdo da variável $falso.

Isto nos poupa mais linhas de código ainda, pois muitas vezes executamos operações como a seguir:

$resultado = $obj->metodo()?$obj->metodo():false;

Com o novo ternário, poderíamos reescrever o trecho acima da seguinte forma:

$resultado = $obj->metodo()?:false;

Mais uma vez, poupando alguns caracteres digitados e, neste caso, também processamento, pois chamamos o método apenas uma vez.

E você, já conhecia o novo ternário?

Se gostou do artigo assine o feed, tuite-o, divulgue-o nas redes sociais. E não esqueça de deixar o seu comentário. Vamos fazer a comunidade PHP crescer cada vez mais!

Facebook Twitter Linkedin Digg Delicious Reddit Stumbleupon Tumblr Posterous