ID: 45820
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Assigned
Bug Type: SPL related
Operating System: Gentoo
PHP Version: 5.2.6
-Assigned To:
+Assigned To: colder
Previous Comments:
------------------------------------------------------------------------
[2008-08-14 12:45:46] [EMAIL PROTECTED]
In 5.3 it behaves differently:
$ php -r '$a = new ArrayObject(); $a[''] = "foo"; var_dump($a);'
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(1) {
[0]=>
string(3) "foo"
}
}
------------------------------------------------------------------------
[2008-08-14 12:13:57] [EMAIL PROTECTED]
Description:
------------
While '' works as an array key, it does not work with ArrayObject. It
should either work both or none (first one preferred).
Reproduce code:
---------------
php > $foo = new ArrayObject();
php > $foo[''] = 'lala';
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with
message 'An offset must not begin with \0 or be empty' in php shell
code:1
Stack trace:
#0 php shell code(1): unknown()
#1 {main}
thrown in php shell code on line 1
InvalidArgumentException: An offset must not begin with \0 or be empty
in php shell code on line 1
Call Stack:
16.7554 63916 1. {main}() php shell code:0
Expected result:
----------------
Same as for arrays.
php > $foo = array();
php > $foo[''] = 'lala';
php > var_dump($foo);
array(1) {
[""]=>
string(4) "lala"
}
Actual result:
--------------
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with
message 'An offset must not begin with \0 or be empty' in php shell
code:1
Stack trace:
#0 php shell code(1): unknown()
#1 {main}
thrown in php shell code on line 1
InvalidArgumentException: An offset must not begin with \0 or be empty
in php shell code on line 1
Call Stack:
16.7554 63916 1. {main}() php shell code:0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45820&edit=1