ID:               44063
 Updated by:       [EMAIL PROTECTED]
 Reported By:      smirnov at h-type dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         SPL related
-Operating System: Windows
+Operating System: *
 PHP Version:      5.2.5
-Assigned To:      
+Assigned To:      helly
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Flipe, your assumption is wrong. Adding rewind to the constructor would
result in a doubled call to rewind on the ArrayIterator.

Now the whole Iterator collection is designed to not duplicate any
calls and to be used by foreach. So you are basically missing the rewind
call, which by the way all examples with while have (at least my own
ones).

I might however look into this again and check whether I can do
something about the starting value in case of the missing rewind call on
the ArrayIterator.


Previous Comments:
------------------------------------------------------------------------

[2008-02-07 01:07:59] [EMAIL PROTECTED]

Marcus, is my impression or is missing a rewind in this constructor?

http://felipe.ath.cx/diff/bug44063.diff

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

[2008-02-06 14:28:08] smirnov at h-type dot com

Description:
------------
RecursiveIteratorIterator returns one extra result if we don't provide
rewind() before while.

Reproduce code:
---------------
$array = array( 
    array('name'=>'butch', 'sex'=>'male'), 
    array('name'=>'fido', 'sex'=>'male'), 
    array('name'=>'girly','sex'=>'female') 
);

$it=new RecursiveIteratorIterator(new RecursiveArrayIterator($array));


//$it->rewind(); //The result will be as expected if uncomment this
while($it->valid()){ 
  echo $it->key().' -- '.$it->current()."\n"; 
  $it->next(); 
}

Expected result:
----------------
name -- butch
sex -- male
name -- fido
sex -- male
name -- girly
sex -- female

Actual result:
--------------
0 -- Array
name -- butch
sex -- male
name -- fido
sex -- male
name -- girly
sex -- female


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


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

Reply via email to