我们有变量,由于某种原因我们认为是一个数组,但它恰好是null.
$var = null
我们试图从这个变量中获取一个值.
$value = $var['key']
这不会引发错误,我的直觉是它会.相反的是,$ value现在也是null.是否有一个特殊的原因,上述行不会抛出错误?
"几乎重复":为什么在布尔值上访问数组索引不会引发任何类型的错误?
那里的代码看起来像:
$var = false;
$value = $var['key'];
Run Code Online (Sandbox Code Playgroud)
答案是 - 它只是文件
使用[]或{}以静默方式访问其他类型的变量(不包括实现适当接口的数组或对象)将返回NULL.
所以在这个字符串中(我说的是你的情况,$ var = null,但是使用boolean将是相同的解释,只需将NULL替换为boolean)
$var['key']
Run Code Online (Sandbox Code Playgroud)
$ var是NULL类型的变量,并且使用[]静默地访问NULL类型的变量(数组或对象的其他类型)返回NULL.