首页 > 解决方案 > Php Null 合并运算符

问题描述

我试图了解它是如何null coalescing operator真正起作用的。因此,在阅读了php.net中的文档和 stackoverflow 上的一些帖子后,我测试了许多示例。

但是,我无法理解这段代码:

<?php 
$x = false ?? 'stackoverflow';
var_dump($x); // bool(false)

因为它相当于(来自php.net#null-coalescing

isset(false) ? false : 'stackoverflow';

并且因为isset(false)生成一个fatal error.

请问有人可以给我解释一下吗?

标签: phpphp-7.1null-coalescing-operator

解决方案


如果存在且不为 NULL,则空合并运算符返回其第一个操作数;

否则它返回它的第二个操作数。

在您的情况下,第一个操作数为 false,因此将其分配给变量。例如;如果您将 null 初始化为第一个操作数,那么它将分配第二个操作数值,如图所示。

 $a = null;
 $x = $a ?? 'abc';
 var_dump($x);

Result :
string(3) "abc" 

推荐阅读