Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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 variable.

$value = $var['key']

This doesn't throw an error, my intuition is that it would though. What instead happens is that $value is now also null. Is there a particular reason that the above line doesn't throw an error?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
190 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...