php - 关于 PHP 空值合并运算符
问题描述
我认为以下代码因尝试在 null 上读取属性“hoge”而失败。
$a = null;
$result = $a->hoge->hoge ?? 'default';
print_r($result);
但它工作正常。为什么这段代码可以正常工作?
解决方案
$result 的值将是“默认”,因为您使用了 ?? 操作员
在 $result = $a->hoge->hoge ?? 'default',它将首先检查 $a 是否存在,如果它存在,那么它将检查它是否具有 hoge 属性,如果它具有该属性,那么它将检查该 hoge 属性是否具有 hoge 以及是否具有然后它会将它的值分配给 $result 变量,但在您的代码中 $a 没有任何属性,然后它将第二个值“默认”分配给 $result
您也可以在没有定义 $a 的情况下运行此代码,并且我仍在使用它来将其值分配给 $result,但尽管 $a 甚至不存在,所以将分配第二个值
$result = $a->hoge->hoge ?? 'default';
print_r($result);
简而言之,它将检查第一个值是否存在,如果存在则分配它的值,否则它将分配第二个值给 ?? 操作员
推荐阅读
- javascript - 角度 ngrx 道具中没有重载匹配此调用
- android - 使用 JWT 的移动身份验证
- java - 当我需要等待用户单击我的应用程序中的链接时,如何防止`java.IOException:HTTP1.1 header parser received no bytes`?
- github - 如何在提交到您自己的存储库时使用现有存储库
- javascript - 在 Oracle-jet 中隐藏一个 div
- python - 在python中净化文本字符串
- mule - Dataweave 1.0 将项目添加到数组
- flutter - 未找到资产图片
- zsh - 在 MacOS 上使用 iTerm2 的 Zsh 带有一个小窗格和一个长提示:提示删除后的空格
- java - Migrate LDAP configurarions from Websphere to Liberty