Peter Oberst
2014-03-24 20:37:26 UTC
Hi,
I want to use an Iterator that returns an the inner iterator, with an
additional FilterIterator applied.
The returned iterator should be separated from my inner iterator, to
avoid errors like 'ArrayIterator::next(): Array was modified outside'.
To avoid this, I think it might be the best to simply clone the inner iterator.
Unfortunatly, if the innerIterator is an FilterIterator, so cloning
will throw an exception:
PHP Fatal error: Call to undefined method ArrayIterator::getIterator()
Is there a good reason why i can't clone a FilterIterator?
Testcase:
<?php
class MyIterator extends FilterIterator {
public function accept() {
return true;
}
}
$arr = new ArrayObject(array());
$it1 = new MyIterator($arr->getIterator());
$it2 = $it1->getIterator();
I want to use an Iterator that returns an the inner iterator, with an
additional FilterIterator applied.
The returned iterator should be separated from my inner iterator, to
avoid errors like 'ArrayIterator::next(): Array was modified outside'.
To avoid this, I think it might be the best to simply clone the inner iterator.
Unfortunatly, if the innerIterator is an FilterIterator, so cloning
will throw an exception:
PHP Fatal error: Call to undefined method ArrayIterator::getIterator()
Is there a good reason why i can't clone a FilterIterator?
Testcase:
<?php
class MyIterator extends FilterIterator {
public function accept() {
return true;
}
}
$arr = new ArrayObject(array());
$it1 = new MyIterator($arr->getIterator());
$it2 = $it1->getIterator();
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php