Edit report at https://bugs.php.net/bug.php?id=64428&edit=1

 ID:                 64428
 User updated by:    namarpi at yahoo dot com
 Reported by:        namarpi at yahoo dot com
 Summary:            SPL RecursiveIteratorIterator::getChildren Uncaught
                     exception
 Status:             Open
 Type:               Bug
 Package:            SPL related
 Operating System:   Windows XP
 PHP Version:        5.4.13
 Block user comment: N
 Private report:     N

 New Comment:

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)


Previous Comments:
------------------------------------------------------------------------
[2013-03-15 16:28:40] [email protected]

getInnerIterator()->getChildren() => 'a 1 text'

why this is a bug?

------------------------------------------------------------------------
[2013-03-15 11:15:41] namarpi at yahoo dot com

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();

------------------------------------------------------------------------
[2013-03-15 09:40:23] 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)


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64428&edit=1

Reply via email to