首页 >后端开发 >php教程 >什么是 Elvis 运算符 (?:) 以及它在 PHP 中如何工作?

什么是 Elvis 运算符 (?:) 以及它在 PHP 中如何工作?

Linda Hamilton
Linda Hamilton原创
2024-11-13 16:13:02438浏览

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

PHP 中的 Elvis 运算符 (?:)

在复杂的 PHP 代码库深处,你可能会遇到一个神秘的运算符: ?: 操作员。被称为“Elvis 运算符”的它可能会让您想知道“它的目的是什么?”

本质上,如果左操作数被认为是“真实的”,则 ?: 运算符将计算其左操作数,并且否则右操作数。换句话说:

foo ?: bar

大致相当于三元运算符:

foo ? foo : bar

或传统的 if-else 语句:

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

但是,与三元运算符不同,?: 运算符仅计算左操作数一次,从而提高了效率。

用法示例

一个常见的用例是用于自检查,如代码片段中可见:

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

这里,如果 $items 为 null 或 falsey,则将 $this->_handle->result() 的结果分配给 $items,同时保持 $items 不变

其他示例

这里还有一些示例来说明该行为:

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'

您是否应该在以下位置遇到 ?: 运算符未来,请记住,它的目标是提供一种基于真实性的简洁评估和分配方式,使您的代码更加高效和可读。

以上是什么是 Elvis 运算符 (?:) 以及它在 PHP 中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn