|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2013-03-15 09:40 UTC] namarpi at yahoo dot com
Description:
------------
Recently I am working with SPL Iterators, and got an uncaught exception with the Test script.
Test script:
---------------
function example() {
$array = array (
'a' => array(
'a_1' => 'a 1 text',
),
);
$array_object = new ArrayObject( $array, 0, "RecursiveArrayIterator" );
$iterator = new RecursiveIteratorIterator( $array_object->getIterator(),
RecursiveIteratorIterator::SELF_FIRST );
foreach( $iterator as $key => $current ) {
var_dump( $iterator->getChildren );
var_dump( $iterator->getInnerIterator() );
//if( $key == 'a' ) {
var_dump( $iterator->getInnerIterator()->getChildren() );
//}
}
}
example();
Expected result:
----------------
Smooth iteration through the leaves.
Actual result:
--------------
[15-Mar-2013 09:29:55 UTC] PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Passed variable is not an array or object, using empty array instead' in [...]
Stack trace:
#0 [internal function]: ArrayIterator->__construct('a 1 text', 67108864)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Dec 06 17:00:01 2025 UTC |
Sorry, correctly this is about RecursiveArrayIterator::getChildren, and a more proper Test script here: --------------------------- function example() { $array = array ( 'a' => array( 'a_1' => 'a 1 text', ), ); $array_object = new ArrayObject( $array, 0, "RecursiveArrayIterator" ); $iterator = new RecursiveIteratorIterator( $array_object->getIterator(), RecursiveIteratorIterator::SELF_FIRST ); foreach( $iterator as $key => $current ) { var_dump( $iterator->getInnerIterator() ); //if( $key == 'a' ) { var_dump( get_class($iterator->getInnerIterator() )); var_dump( $iterator->getInnerIterator()->getChildren() ); //} } } example();I am using 14 Mar 2012, PHP 5.4.13, and running the test script without exception handling. This is the result: [15-Mar-2013 18:06:44 UTC] RecursiveArrayIterator [15-Mar-2013 18:06:44 UTC] PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Passed variable is not an array or object, using empty array instead' in [...] Stack trace: #0 [internal function]: ArrayIterator->__construct('a 1 text', 67108864)