Edit report at https://bugs.php.net/bug.php?id=64431&edit=1
ID: 64431
User updated by: namarpi at yahoo dot com
Reported by: namarpi at yahoo dot com
Summary: SPL RecursiveArrayIterator::offsetSet with
ArrayObject fails but stdClass works
Status: Open
Type: Bug
Package: SPL related
Operating System: Windows
PHP Version: 5.4.13
Block user comment: N
Private report: N
New Comment:
Hello,
good news: method chaining works (leastwise two levels), so apology for the
rumor. Here is the script which contains two solutions, one for
RecursiveIteratorIterator, and one for RecursiveArrayIterator. It would be
really nice to complete this wiki page:
http://en.wikipedia.org/wiki/Method_chaining :))
https://github.com/namarpi/php-reports/blob/master/methodChain.php
Previous Comments:
------------------------------------------------------------------------
[2013-03-18 05:47:49] namarpi at yahoo dot com
Hello again,
I would like to offer my help with some simple test scripts, which will be
collected at
https://github.com/namarpi/PHP-SPL-Recursive-Examples
If you need them use them.
------------------------------------------------------------------------
[2013-03-17 06:25:25] namarpi at yahoo dot com
Perhaps you have already faced with that too, that method chaining fails even
with stdClass. If not than this script provides an example:
https://github.com/namarpi/php-reports/blob/master/insertGrandchildByGrandparentKey.php
------------------------------------------------------------------------
[2013-03-16 07:36:00] namarpi at yahoo dot com
This test script gets rid of the RecursiveIteratorIterator, and focuses only on
the RecursiveArrayIterator.
https://github.com/namarpi/php-reports/blob/master/test-RecursiveArrayIterator::getChildren::offsetSet.php
------------------------------------------------------------------------
[2013-03-15 18:30:39] namarpi at yahoo dot com
Relocated the file to a GhitHub repository:
https://github.com/namarpi/php-reports/blob/master/test-RecursiveArrayIterator::offsetSet.txt
------------------------------------------------------------------------
[2013-03-15 15:29:44] namarpi at yahoo dot com
Description:
------------
Trying to modify an array through RecursiveIteratorIterator iterator. The
successful modification depends on how the array object was constructed.
Fails: $array_object = new ArrayObject( $array, 0, "RecursiveArrayIterator" );
Works: $object = json_decode( json_encode( $array ));
I am confused, because I expect the same behavior on both iterators. Attached a
detailed test script, which tells more than my bad English text. Maybe I am
escaping something?
Test script:
---------------
http://madarak.net/php_reports/spl-recursion.txt
Expected result:
----------------
Modified ArrayObject object after using
RecursiveArrayIterator::offsetSet/offsetUnset methods.
Actual result:
--------------
There are no effects on ArrayObject object after calling
RecursiveArrayIterator::offsetSet/offsetUnset methods.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64431&edit=1