<?php class Test implements Iterator { private $item = array(1,2,3,4,5); public function __construct() { } // 重置,将数组内部指针指向第一个单元 public function rewind() { reset($this->item); } // 判断单前索引游标指向的元素是否有效 public function valid() { return ($this->current() !== false); } // 返回数组当前单元 public function current() { return current($this->item); } // 返回单前单元的键名 public function key() { return key($this->item); } // 移动单前索引游标到下一元素 public function next() { return next($this->item); } } // 测试: $t = new Test(); foreach($t as $k=>$v) { echo $k,'---->',$v,'<br />'; }