note 122430 deleted from language.types.array by peehaa
| From: | peehaa@php.net | Date: | Sun, 28 Apr 2019 10:24:32 +0000 |
| Subject: | note 122430 deleted from language.types.array by peehaa | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-210775@lists.php.net to get a copy of this message | ||
Note Submitter: munteanutraian at gmail dot com
----
Just a comment to this:
"<?php
$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.
From doc:
"Note:
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.""
$a['a'] is not an array. It is null. That rule does not apply
Instead $a['b'] is an array. Rule is applied.