php - 嵌套空合并运算符 (??) 如何在 PHP 中工作?需要执行流程的分步说明

标签 php nested php-7 execution null-coalescing-operator

我正在使用 PHP 7.2.0

我已经理解了null coalescing operator(??) 的正常基本用法,但是我无法理解 null coalescing operator(??) 嵌套时的执行流程和功能.

请考虑下面的代码示例并逐步向我解释执行流程。

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // outputs 1

?>

最佳答案

如果您在 null 合并运算符的单个步骤周围添加括号,我认为您的示例会变得更清晰。

echo ($foo ?? ($bar ?? ($baz ?? $qux)));

基本上和从左到右执行是一样的。

空合并运算符是右结合运算符。这意味着操作是从右到左分组的。即,表达式 a ?? ?? c 被评估为 a ?? (b ?? c)

关于php - 嵌套空合并运算符 (??) 如何在 PHP 中工作?需要执行流程的分步说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48043699/

相关文章:

php - Yii2 GridView SqlDataprovider 排序不工作

php - 我无法运行 php artisan migrate

PHP CURL 请求带有导出密码(Passphrase)的 P12 (PFX) 证书

ios - 从嵌套 NSDictionary 读取值

xhtml - 使用 Text.XHtml 嵌套

php - mysqli 中的 mysql_field_names 使用循环

php - SOAP 方法调用极慢

mysql - 嵌套 MySQL 查询?

php - 如何修复 CLI 使用的 Windows PHP 版本?

php - Laravel 5.3 中的路由:: Controller