"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O que é o operador Elvis (?:) e como funciona em PHP?

O que é o operador Elvis (?:) e como funciona em PHP?

Publicado em 2024-11-21
Navegar:359

What is the Elvis Operator (?:) and How Does it Work in PHP?

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.

Tutorial mais recente Mais>

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