Key of null variable equals null not error

前端 未结 2 911
遥遥无期
遥遥无期 2020-12-06 02:27

We\'ve got variable that for some reason we think would be an array, but it happens to be null.

$var = null

We try to get a value from this var

相关标签:
2条回答
  • 2020-12-06 02:52

    There is "almost duplicate": Why does accessing array index on boolean value does not raise any kind of error?

    the code there looks like:

    $var = false;
    $value = $var['key'];
    

    and the answer is - it's just document

    Accessing variables of other types (not including arrays or objects implementing the appropriate interfaces) using [] or {} silently returns NULL.

    So in this string (I am talking about your case, $var = null, but with boolean would be the same explanation, just replace NULL to boolean)

    $var['key']
    

    $var is the variable of type NULL, and accessing variable of type NULL (other type that array or object) using [] silently returns NULL.

    0 讨论(0)
  • 2020-12-06 02:53

    You can use this kind of fallback

    function _get($from, $key)
    {
        if(is_null($from))
        {
            trigger_error('Trying to get value of null');
            return null;
        }
        return $from[$key];
    }
    

    Change

    $value = $var['key'];
    

    to

    $value = _get($var, 'key');
    
    0 讨论(0)
提交回复
热议问题