提问人:Skye Ewers 提问时间:1/15/2022 更新时间:1/15/2022 访问量:561
if-condition 中的 Null 合并运算符
Null coalescing operator in if-condition
问:
我对 PHP 中的 null 合并运算符的工作原理感到困惑,如果可能的话,我想对以下内容进行一些解释:
我有一个关联数组,表示发布到服务器的数据。该数组中的一个值可以是布尔值,也可以只是不设置。我在 if 条件中使用该值,该条件检查该值是否存在并设置为另一个条件。我检查存在值的方法是使用 null 合并 () 运算符将缺失值替换为 .true
??
false
这似乎改变了 if 条件的结果。只要条件存在,if 条件就会返回 ,而不管 if 条件的第二部分是什么。true
这怎么可能?
<?php
$body = [];
$body['variable'] = true;
if ($body['variable'] ?? false && false) {
echo('true');
} else {
echo('false');
}
// true
unset($body['variable']);
if ($body['variable'] ?? false && false) {
echo('true');
} else {
echo('false');
}
// false
答: 暂无答案
评论
&&
具有高于 的优先级,因此它等效于??
if ($body['variable'] ?? (false && false))
$body['variable'] ??= false