Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lipe760

Quando usar e não usar Operadores Ternários(Condições Ternárias)

Recommended Posts

Fala ae, Galera!

 

Sem querer causar polêmica, e sim, "ouvir" opiniões pra tentar entender por várias óticas o conceito.

Quando usar e não usar Operadores Ternários?

 

Exemplo?

 

Obrigadooooooooooo!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uso sempre que possível, acho que é mais uma questão de escrever menos do que qualquer outra coisa e também de gosto, é claro. Só não é legal usar quando se tem muitas comparações (respeitar também o limite - 120 caracteres por linha) ou usar ternário encadeado, dificulta e muito a leitura, então if's talvez seriam melhores nesse caso.

 

Por exemplo na situação abaixo:

public function doSomething(Foo $foo = null) {
    if ($foo === null) {
        $this->foo = new Foo();
    } else {
        $this->foo = $foo;
    }
}

Poderíamos simplificar de várias formas, ainda sem ternário da pra dispensar o uso do else:

public function doSomething(Foo $foo = null) {
    if ($foo === null) {
        $foo = new Foo();
    }
    $this->foo = $foo;
}

Com operador ternário:

public function doSomething(Foo $foo = null) {
    $this->foo = $foo === null ? new Foo() : $foo;
}

Ou, o caso acima ainda poderia ser reduzido a:

public function doSomething(Foo $foo = null) {
    $this->foo = $foo ?: new Foo();
}

Não me recordo se funciona em outras linguagens, mas em PHP caso a condição seja verdadeira e nada tenha sido especificado para a condição verdadeira o PHP retorna o próprio valor da condição.

$foo = null;

var_dump($foo ?: 10); // int(10)

$foo = 20;

var_dump($foo ?: 10); // int(20)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não me recordo se funciona em outras linguagens, mas em PHP caso a condição seja verdadeira e nada tenha sido especificado para a condição verdadeira o PHP retorna o próprio valor da condição.

 

No Javascript dá pra fazer também, mas o operador muda:

 

alert(null || 10); // mostra 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso bastante o segundo e o terceiro exemplo mostrado pelo @Marcielo, gosto porque encurta bastante e acho que fica melhor para ler o código. Mas este exemplo abaixo eu desconhecia:

 

 

 

Não me recordo se funciona em outras linguagens, mas em PHP caso a condição seja verdadeira e nada tenha sido especificado para a condição verdadeira o PHP retorna o próprio valor da condição.

$foo = null; var_dump($foo ?: 10); // int(10) $foo = 20; var_dump($foo ?: 10); // int(20)

 

O do Javascript mostrado pelo @Henrique Barcelos eu ainda não me acostumei a usar no JS...acho estranho embora seja super simples rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.