3v4l.org

run code in 300+ PHP versions simultaneously
<?php class values implements IteratorAggregate { private $_data = null; // array or object private $_keys = array(); private $_key = false; public function __construct($data = null){ $this->_data = $data; } private static function g($data){ foreach ($data as $k => $v){ yield $k => $v; } } public function getIterator(){ $data = $this->_data; return self::g($data); } } $values = new values(new DateTime()); for ($i = 0; $i < 100; $i++){ foreach($values as $k => $v) { var_dump($k, $v); } }

preferences:
33.44 ms | 402 KiB | 5 Q