Elvis Operator (?:) Desvendado em PHP
Nas profundezas de uma complexa base de código PHP, você pode encontrar um operador misterioso: o ?: operador. Apelidado de "operador Elvis", ele pode fazer você se perguntar: "Qual é o seu propósito?"
O operador ?:, em essência, avalia para seu operando esquerdo se o operando esquerdo é considerado "verdadeiro" e o operando direito caso contrário. Em outras palavras:
foo ?: bar
é aproximadamente equivalente ao operador ternário:
foo ? foo : bar
ou em uma instrução if-else tradicional:
if (foo) { foo = foo; } else { foo = bar; }
No entanto, ao contrário do operador ternário, o operador ?: avalia o operando esquerdo apenas uma vez, aumentando a eficiência.
Exemplo de uso
Um exemplo comum O caso de uso é para autoverificação, conforme visto no trecho de código:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Aqui, ele atribui o resultado de $this->_handle->result() a $items se $items é null ou falsey, mas deixa $items inalterado caso contrário.
Exemplos Adicionais
Aqui estão alguns mais exemplos para esclarecer o comportamento:
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'); // 'roll' var_dump('42' ?: 'roll'); // '42'
Se você encontrar um operador ?: no futuro, lembre-se de que seu objetivo é fornecer uma maneira concisa de avaliar e atribuir com base na veracidade, tornando seu código mais eficiente e legível.
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