$a['a'] = null;
$a['b'] = array();
echo $a['a']['non-existent']; // DOES NOT throw an E_NOTICE error as expected.
echo $a['b']['non-existent']; // throws an E_NOTICE as expected
I added this bug to bugs.php.net (https://bugs.php.net/bug.php?id=68110)
however I made tests with php4, 5.4 and 5.5 versions and all behave the same way.
This, in my point of view, should be cast to an array type and throw the same error.
This is, according to the documentation on this page, wrong.
Attempting to access an array key which has not been defined is the same as accessing any other undefined variable: an E_NOTICE-level error message will be issued, and the result will be NULL."