|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2017-02-21 18:45 UTC] requinix@php.net
-Summary: LimitIterator > FilterIterator issue
+Summary: FilterIterator::accept called even though
LimitIterator stops loop
-Status: Open
+Status: Not a bug
[2017-02-21 18:45 UTC] requinix@php.net
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Dec 14 15:00:01 2025 UTC |
Description: ------------ When a LimitIterator is use after a FilterIterator (or CallbackFilterIterator) the accept function is call after the limit but if we invert the 2 iterator it's ok. Test script: --------------- class TestFilterIterator extends FilterIterator { public function accept() { echo __FUNCTION__, PHP_EOL; return true; } } $iterator = new ArrayIterator(array('a', 'b', 'c', 'd')); $iterator = new TestFilterIterator($iterator); $iterator = new LimitIterator($iterator, 0, 2); foreach ($iterator as $k => $v) { echo PHP_EOL; } Expected result: ---------------- accept accept Actual result: -------------- accept accept accept