php - : 和 ?? 之间有什么区别?PHP 运算符?
问题描述
我对这两个运算符都有基本的了解,但想知道两者之间的细微差异可能会导致“难以跟踪”的错误。
解决方案
这?:
只是三元运算符 expression ? if true : if false
的快捷方式,而Null Coalescing Operator ??
仅具有该构造并测试变量是否已设置/未定义null
。
$a = '';
echo $a ?: 'test ?:';
echo $a ?? 'test ??';
Yieldstest ?:
因为$a
是一个空字符串,计算结果为false
但已设置。
//$a = null;
echo $a ?: 'test ?:';
echo $a ?? 'test ??';
产量:
警告:未定义变量 $a test ?: test ??
在第一行中,因为$a
未设置,它会生成通知/警告并评估为false
第二行,因为未设置。
简而言之:
?:
将表达式计算为true
orfalse
并执行 iffalse
。??
如果表达式不是则执行null
推荐阅读
- java - 通过 EventChannel 向 Flutter 发送 Android SMS BroadcastReceiver 数据
- jquery - 选中父复选框时,仅检查没有子子项的直接子项
- c# - 如何在asp net core中的服务之间共享websocket
- android - Android UDP 故障导致 VOIP 口吃
- java - 拥有@ApplicationScoped bean 效率更高吗?
- plasticscm - PlasticSCM:对未决更改进行深入比较
- javascript - 在 Woocommerce 上使用 Facebook Pixel 跟踪订单价值
- quartz-scheduler - Quartz集群和redis jobStore
- excel - Excel:动态选择工作表(没有工作表名称)
- python - 使用字符串列表或字典根据数据框中的现有列创建新列