Domando o Operador Elvis (?:) em PHP
O misterioso operador ?: enfeitou algum código PHP, deixando você confuso. Este artigo conciso investiga sua natureza enigmática, desvendando seu verdadeiro propósito.
Desvendando o ?: Operador
O operador ?:, também conhecido como "operador Elvis, "funções semelhantes a um operador ternário. Contudo, sua característica única reside na ausência de uma expressão para avaliar se o predicado é verdadeiro. Aqui está um detalhamento de seu comportamento:
Ele avalia para o operando esquerdo se o operando esquerdo for verdadeiro, ou seja, não nulo, string vazia, falso ou zero.
Se o o operando esquerdo é falsy, ele é avaliado como operando direito.
Crucialmente, a expressão para o o operando esquerdo é avaliado apenas uma vez, garantindo a eficiência.
Exemplos ilustrativos
Para esclarecer melhor, considere o seguinte trecho de código:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Neste caso, se $items é verdadeiro (não nulo ou não vazio), o valor de $items é atribuído a si mesmo. No entanto, se $items for falso, o resultado de $this->_handle->result('next', $this->_result, $this) é atribuído a $items. Isso lida efetivamente com valores indefinidos, fornecendo um valor padrão.
Aplicativos adicionais
O operador ?: também é útil em cenários de autoverificação:
foo = foo ?: bar;
Aqui, foo receberá o valor de bar se foo for nulo ou falso. Caso contrário, foo permanece inalterado.
Mostra de Versatilidade
Para ilustrar sua versatilidade, considere estes exemplos:
var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // 'foo' var_dump(true ?: 123); // true var_dump('rock' ?: 'roll'); // 'rock' var_dump('' ?: 'roll'); // 'roll' var_dump('0' ?: 'roll'); // '0' var_dump('42' ?: 'roll'); // '42'
A Origem do "Operador Elvis"
Seu apelido peculiar, "Operador Elvis", deriva de sua semelhança com o cabelo de Elvis Presley. Assim como as fechaduras de Elvis eram estilizadas com um topete espesso ou penteadas para trás, o operando esquerdo do operador é verdadeiro ou falso, determinando o valor resultante.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3