"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Qué es el operador Elvis (?:) y cómo funciona en PHP?

¿Qué es el operador Elvis (?:) y cómo funciona en PHP?

Publicado el 2024-11-21
Navegar:670

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

Operador Elvis (?:) Desentrañado en PHP

En las profundidades de un código base PHP complejo, puedes encontrarte con un operador misterioso: el ?: operador. Apodado el "operador de Elvis", es posible que usted se pregunte: "¿Cuál es su propósito?" operando correcto en caso contrario. En otras palabras:

foo ?: bar

foo ?: bar

foo ? foo : bar

foo ? foo : bar

if (foo) { foo = foo; } demás { foo = barra; }

if (foo) {
    foo = foo;
} else {
    foo = bar;
}

Ejemplo de uso

Uno común El caso de uso es para autoverificación, como se ve en el fragmento de código:

$items = $items ?: $this->_handle->result('next', $this->_result, $this);

$items = $items ?: $this->_handle->result('next', $this->_result, $this);

Ejemplos adicionales

Aquí hay algunos más ejemplos para iluminar el comportamiento:

var_dump(5 ?: 0); // 5 var_dump(falso?: 0); // 0 var_dump(nulo?: 'foo'); // 'foo' var_dump(¿verdadero?: 123); // verdadero var_dump('roca'?: 'rodar'); // 'roca' var_dump('' ?: 'rollo'); // 'rollo' var_dump('0' ?: 'rollo'); // 'rollo' var_dump('42' ?: 'rollo'); // '42'

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'
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3