A tester will never trust a developer's words, we trust manuals and
actual results:) I do that for the better of php. But I will not update
the status of this defect again. Because there are no documents for SPL
functions, it is really difficult to determain a defect.
helly: From your website,CachingIterator "point" to exactly the next
element of the Iterator being cached. So I still think it mis-behaved
after two times of rewind.
Previous Comments:
------------------------------------------------------------------------
[2006-01-23 10:51:02] sni...@php.net
Just trust what the author of the code says.
------------------------------------------------------------------------
[2006-01-23 10:30:54] quick_defect at yahoo dot com
So you mean a CachingIterator can take more elements than the Iterator
it cached? I can understand that the CachingIterator just caches
Iterator for 1 element. As you know, there are not any documents for
them. So would you PLS to illustrate this?
------------------------------------------------------------------------
[2006-01-23 10:08:50] he...@php.net
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
Don't try to outsmart them and still expect them to work correct. The
code you presented works exactly as you told it to.
------------------------------------------------------------------------
[2006-01-23 10:00:59] tony...@php.net
Assigned to the maintainer.
------------------------------------------------------------------------
[2006-01-23 09:51:11] quick_defect at yahoo dot com
Description:
------------
I know I did not use the rewind function as usual. But after I did so,
the behavior of Iterator seemed went wrong.
Reproduce code:
---------------
<?php
$ary=array("1","2");
$ary_obj=new ArrayObject($ary);
$ite=$ary_obj->getIterator();
$c_ite=new CachingIterator($ite);
$ite->rewind();
$c_ite->rewind();
for($axx=$ite;$axx->valid();$axx->next())
{
var_dump($axx->current());
}
echo "*******\n";
$c_ite->rewind();
$ite->rewind();
for($axx=$c_ite;$axx->valid();$axx->next())
{
var_dump($axx->current());
}
?>
Expected result:
----------------
string(1) "1"
string(1) "2"
*******
string(1) "1"
string(1) "2"
Actual result:
--------------
string(1) "2"
*******
string(1) "1"
string(1) "1"
string(1) "2"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36132&edit=1
SPL documentation is at http://php.net/~helly/php/ext/spl/
(as linked from php.net/spl) most classes are also
avialable in form of an PHP implementation at
php-src/ext/spl/internal/ in PHP Source distribution or
CVS. And I trust the implementation only :-)
Previous Comments:
------------------------------------------------------------------------
[2006-01-24 06:13:59] quick_defect at yahoo dot com
A tester will never trust a developer's words, we trust manuals and
actual results:) I do that for the better of php. But I will not update
the status of this defect again. Because there are no documents for SPL
functions, it is really difficult to determain a defect.
helly: From your website,CachingIterator "point" to exactly the next
element of the Iterator being cached. So I still think it mis-behaved
after two times of rewind.
------------------------------------------------------------------------
[2006-01-23 10:51:02] sni...@php.net
Just trust what the author of the code says.
------------------------------------------------------------------------
[2006-01-23 10:30:54] quick_defect at yahoo dot com
So you mean a CachingIterator can take more elements than the Iterator
it cached? I can understand that the CachingIterator just caches
Iterator for 1 element. As you know, there are not any documents for
them. So would you PLS to illustrate this?
------------------------------------------------------------------------
[2006-01-23 10:08:50] he...@php.net
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
Don't try to outsmart them and still expect them to work correct. The
code you presented works exactly as you told it to.
------------------------------------------------------------------------
[2006-01-23 10:00:59] tony...@php.net
Assigned to the maintainer.
------------------------------------------------------------------------
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/36132