ID: 38618 Updated by: [EMAIL PROTECTED] Reported By: mike at silverorange dot com -Status: Assigned +Status: No Feedback Bug Type: SPL related Operating System: * PHP Version: 5.2.5 -Assigned To: helly +Assigned To: colder New Comment:
I MFB'ed that patch to HEAD as well with a slight distinction, The constant now belongs to RecursiveArrayIterator, and not ArrayObject anymore. This flag is off by default. Previous Comments: ------------------------------------------------------------------------ [2007-12-05 16:00:40] [EMAIL PROTECTED] So far the behavior is expected as ArrayObject/ArrayIterator follow arrays as well as objects. For 5.3 I added a new flag ArrayObject::CHILD_ARRAYS_ONLY that can be used to prevent ArrayIterator from following objects. IF you feel this is ok let me know. If you think the behavior should be reverse, meaning the flag should be active by default and there should be a way to disable it then open a RFC on [EMAIL PROTECTED] ------------------------------------------------------------------------ [2007-08-20 15:01:23] [EMAIL PROTECTED] Marcus, can you check this out please? ------------------------------------------------------------------------ [2007-08-20 14:14:53] mike at silverorange dot com I played around with the test case a bit more and it seems that the default RecursiveArrayIterator iterates the public properties of objects within the arrays. For example, if I adda public $foo = 'bar' property to the Fruit class, I get the following (incorrect) output: Default recursive array iteraration: title => apple foo => bar title => orange foo => bar title => banana foo => bar title => grape foo => bar title => peach foo => bar title => strawberry foo => bar title => grapefruit foo => bar ------------------------------------------------------------------------ [2007-08-20 14:05:21] mike at silverorange dot com I tried changing the scope of the $title property from protected to public and the test case does indeed run correctly. Even so, the test case should still run correctly when the property is protected. ------------------------------------------------------------------------ [2007-08-20 10:34:33] [EMAIL PROTECTED] Replace "protected" with "public" and it works fine.. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/38618 -- Edit this bug report at http://bugs.php.net/?id=38618&edit=1