php - 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
.
请问有人可以给我解释一下吗?
解决方案
如果存在且不为 NULL,则空合并运算符返回其第一个操作数;
否则它返回它的第二个操作数。
在您的情况下,第一个操作数为 false,因此将其分配给变量。例如;如果您将 null 初始化为第一个操作数,那么它将分配第二个操作数值,如图所示。
$a = null;
$x = $a ?? 'abc';
var_dump($x);
Result :
string(3) "abc"
推荐阅读
- php - 为什么我的 PHP 代码中出现 (语法错误,意外标记 ";" )?
- python - Pandas loc 为相同的过滤器提供不同的值
- html - 当输入太大时,有序列表中的单词不会换行
- c++ - 使 ++o++ 抱怨具有用户定义的前置和后缀增量运算符的类型
- r - 如何使用 dplyr 将列中的值除以 R 中的特定行?
- java - Studio 4 不处理导入
- java - NamedParameterJdbcTemplate 性能缓慢
- node.js - Mineflayer - options.username = options.username ?? “播放器”错误
- javascript - Lazysizes 不像我拥有的其他项目那样在 div 上工作 - Angular
- linux - Docker 容器无法与本地连接的设备通信