Edit report at http://bugs.php.net/bug.php?id=52184&edit=1

 ID:               52184
 Comment by:       anon at anon 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:

He has an interesting point.

For arrays you get "undefined offset".

For strings, "uninitialized string offset".

For objects, "cannot use object of type foo as array".

For null, numbers, bools, no error, no nothing.


Previous Comments:
------------------------------------------------------------------------
[2010-06-26 00:04:26] egorinsk at gmail dot com

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.

------------------------------------------------------------------------
[2010-06-25 15:25:41] johan...@php.net

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

Reply via email to