嵌套null合并运算符(??)如何在PHP中工作?需要逐步解释执行流程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套null合并运算符(??)如何在PHP中工作?需要逐步解释执行流程相关的知识,希望对你有一定的参考价值。
我使用的是php 7.2.0
我已经理解了空合并运算符(??)的正常基本用法,但我无法理解嵌套空合并运算符(??)时的执行流程和功能。
请考虑下面的代码示例,并逐步向我解释执行流程。
<?php
$foo = null;
$bar = null;
$baz = 1;
$qux = 2;
echo $foo ?? $bar ?? $baz ?? $qux; // outputs 1
?>
答案
如果你在空合并运算符的单个步骤周围添加parens,我认为你的例子变得更清晰了。
echo ($foo ?? ($bar ?? ($baz ?? $qux)));
基本上它与从左到右执行相同。
空合并运算符是右关联运算符。这意味着操作从右到左分组。即,表达式a ?? b ?? c
被评估为a ?? (b ?? c)
。
另一答案
它的工作方式与其基本用法类似。
执行流程如下:
- 它检查
isset($foo)
它没有被设置,它包含NULL
所以,去$bar
- 它检查
isset($bar)
它没有被设置,它也包含NULL
所以,去$baz
- 它检查
isset($baz)
它已被设置,它包含值1
所以,它被打印并执行停止。
以上是关于嵌套null合并运算符(??)如何在PHP中工作?需要逐步解释执行流程的主要内容,如果未能解决你的问题,请参考以下文章