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

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

Linda Hamilton
发布: 2024-11-13 16:13:02
原创
408 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板