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