”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 什么是 Elvis 运算符 (?:) 以及它在 PHP 中如何工作?

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

发布于2024-11-21
浏览:898

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

Elvis 运算符 (?:) PHP 揭秘

在复杂的 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);

这里,它将 $this->_handle->result() 的结果赋给 $items if $items 为 null 或 false,否则 $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'

以后如果遇到 ?: 运算符,请记住它的目标是提供一种基于真实性的简洁评估和赋值方法,使您的代码更加高效和可读。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3