id = $id; } } class Iter { function __construct( $array, $objName ) { $this->list = $array; $this->__objName = $objName; } function next() { $id = current($this->list); next($this->list); if ($id) return new $this->__objName($id); else return Null; } } $ar = array(); for($i=0;$i<80000;$i++) $ar[$i] = $i; $start = microtime(true); $iter = new Iter($ar, "Obj"); for($x=100;$x>0;$x--) { while($obj = $iter->next()) { // do nothing } } $end = microtime(true); print $end - $start; ?>