我们有变量,由于某种原因我们认为是一个数组,但它恰好是null。
$var = null
我们尝试从此变量中获取值。
$value = $var['key']
这不会引发错误,我的直觉是它会。相反的是,$ value现在也是null。是否有一个特殊的原因,上面的行没有抛出错误?
答案 0 :(得分:9)
几乎重复":Why does accessing array index on boolean value does not raise any kind of error?
代码如下:
$var = false;
$value = $var['key'];
答案是 - just document
使用[]或{}以静默方式访问其他类型的变量(不包括实现适当接口的数组或对象)将返回NULL。
所以在这个字符串中(我在谈论你的情况,$ var = null,但是使用boolean将是相同的解释,只需将NULL替换为boolean)
$var['key']
$ var是type NULL的变量,使用[]静默访问NULL类型的变量(数组或对象的其他类型)将返回NULL。
答案 1 :(得分:0)
您可以使用此类备用
function _get($from, $key)
{
if(is_null($from))
{
trigger_error('Trying to get value of null');
return null;
}
return $from[$key];
}
更改
$value = $var['key'];
到
$value = _get($var, 'key');