public function walk(\Traversable $iterator, callable $function) { $adapter = $this->adapter($iterator); foreach ($adapter as $key => &$value) { if ($function($value, $key) === false) { break; } } }