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

Reply via email to