i PHP 7 you can use Anonymous classes to get the same results.
* @var Iterator
*/protected$next;/**
* Collection constructor.
*
* @param Iterator $next
*/public function__construct(Iterator $next)
{$this->next=$next;
}/**
* @param callable $callback
*
* @return static
*/public functionfilter(callable$callback=null)
{
return new static(new class($this,$callback) extendsFilterIterator{
protected$callback;
public function__construct(Iterator $iterator, callable$callback=null)
{parent::__construct($iterator);$this->callback=$callback?: function($current) {
return ! empty($current);
};;
}
public functionaccept()
{
returncall_user_func($this->callback,parent::accept());
}
});
}// Iterator methods ...}// .......?>