Edit report at http://bugs.php.net/bug.php?id=52184&edit=1
ID: 52184
Comment by: egorinsk at gmail dot com
Reported by: egorinsk at gmail dot com
Summary: Using null as array gives no warning or error
Status: Bogus
Type: Bug
Package: *General Issues
Operating System: linux
PHP Version: 5.3.2
New Comment:
Thank you for your response.
> You aren't accessing an array offset but a string offset. null is
casted to String. The string is shorter than the offset (length is 0) so
it returns NULL.
Well, PHP emits a notice when accessing uninitialized string offset, so
this is not the case:
~: php -r 'error_reporting(E_ALL); $a=""; echo $a[12]; '
PHP Notice: Uninitialized string offset: 12 in Command line code on
line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
Notice: Uninitialized string offset: 12 in Command line code on line 1
Call Stack:
0.0002 317032 1. {main}() Command line code:0
Anyway, I guess there should be at least warning, because null is
neither a string, nor array, and trying to access element of null is
obviously an error, and I, as a developer, would prefer to have it
logged.
Previous Comments:
------------------------------------------------------------------------
[2010-06-25 15:25:41] [email protected]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
You aren't accessing an array offset but a string offset. null is casted
to String. The string is shorter than the offset (length is 0) so it
returns NULL.
------------------------------------------------------------------------
[2010-06-25 13:39:14] egorinsk at gmail dot com
Description:
------------
Using null as array gives no warning, notice or error, just returns
null. It is at least strange.
Test script:
---------------
<?php
error_reporting(E_ALL);
$a = null;
echo $a[12]; // Gives no warning, notice or error
?>
Expected result:
----------------
Some kind of notice or warning.
Actual result:
--------------
(nothing)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=52184&edit=1