Pular para o conteúdo

operador ternário [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. operador ternário [RESOLVIDO]

Enviado em 20/06/2022 - 21:14h


Olá gente, serei breve.
Atualmente estava estudando o operador ternário ? que tem a seguinte sintaxe para atribuição de variável:
var = condicao ? expressao1 : expressao2;
(se condicao verdadeira var = expressao1)
(se condicao falsa var = expressao2)
no código que estou fazendo eu gostaria de saber se ter como ele não atribuir nada caso a condicao for falsa, ou nem verificar.
Já tentei fazer sem o ":"
var = condicao ? expressao1;
Mas deu erro
Ja tentei fazer com que na expressao2 tenha um return mas tmb n funfa.
Alguém com mais experiência poderia me dar uma ajudinha? Valeu!

Responder tópico

3. Re: operador ternário [RESOLVIDO]

Enviado em 20/06/2022 - 22:50h


Inverte a condição lógica var = !condicao ? :expressao1 - assim o bloco do meio fica vazio. O último bloco é obrigatório mas o do meio não.

4. Re: operador ternário [RESOLVIDO]

Enviado em 21/06/2022 - 13:18h

Fica meio estranho se você não atribuir nada, porque mais tarde quando alguém for utilizar a sua variável o PHP vai dizer que a variável não existe, mas aqui vai a minha sugestão.


<?php
$condicao = true;
$condicao && $foo = 'Eu sou uma string';

var_dump($foo); // 'Eu sou uma string'



É aqui onde as coisas podem ficar feias.

$condicao = false;
$condicao && $foo = 'Eu sou uma string';
var_dump($foo); // Emite um aviso
// PHP Warning: Undefined variable $foo in php shell code on line 1
// NULL

5. Re: operador ternário [RESOLVIDO]

Enviado em 21/06/2022 - 16:39h


cizordj escreveu:

Fica meio estranho se você não atribuir nada, porque mais tarde quando alguém for utilizar a sua variável o PHP vai dizer que a variável não existe, mas aqui vai a minha sugestão.


<?php
$condicao = true;
$condicao && $foo = 'Eu sou uma string';

var_dump($foo); // 'Eu sou uma string'



É aqui onde as coisas podem ficar feias.

$condicao = false;
$condicao && $foo = 'Eu sou uma string';
var_dump($foo); // Emite um aviso
// PHP Warning: Undefined variable $foo in php shell code on line 1
// NULL

Só como comentário para enriquecer o debate, se não houver atribuição o valor retornado será o da própria expressão, no caso 1(verdadeiro).

6. .

Enviado em 21/06/2022 - 21:22h


No caso a linguagem é C.
Inverter a condição é uma boa sacada, vou usar isso obrigado a todos.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder