3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace Pinq\Iterators\Standard; /** * Common functionality for the array iterator * * @author Elliot Levin <elliotlevin@hotmail.com> */ trait ArrayIteratorT { /** * @var array */ protected $array; public function __constructIterator(array &$array) { $this->array =& $array; } /** * @return array */ final public function getArrayCopy() { return $this->array; } } /** * Implementation of the array iterator using the fetch method. * * @author Elliot Levin <elliotlevin@hotmail.com> */ class ArrayIterator { use ArrayIteratorT; public function __construct(array $array) { self::__constructIterator($array); } public function doRewind() { reset($this->array); } final protected function doFetch() { $key = key($this->array); if ($key === null) { return null; } next($this->array); return [$key, &$this->array[$key]]; } } (new ArrayIterator([]));

preferences:
70.02 ms | 402 KiB | 5 Q