null变量的键等于null而不是错误

时间:2015-09-18 10:44:52

标签: php

我们有变量,由于某种原因我们认为是一个数组,但它恰好是null。

$var = null

我们尝试从此变量中获取值。

$value = $var['key']

这不会引发错误,我的直觉是它会。相反的是,$ value现在也是null。是否有一个特殊的原因,上面的行没有抛出错误?

2 个答案:

答案 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');