for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace itertools;
use InvalidArgumentException;
use FilterIterator;
/** For PHP 5.3 */
class CallbackFilterIterator extends FilterIterator
{
protected $callback;
public function __construct($iterator, $callback)
parent::__construct(IterUtil::asIterator($iterator));
if (! is_callable($callback)) {
throw new InvalidArgumentException('No valid callback provided');
}
$this->callback = $callback;
public function accept()
return call_user_func($this->callback, $this->current(), $this->key(), $this->getInnerIterator());