implements Iterator , 實現Iterator 的 current(); next(); key(); valid(); rewind();
1 <?php 2 /* 3 *先定義一個數組 4 *定義第一個位置 $position = 0 5 *然後返回key 和value, 6 *指向下一個位置 ++$position 7 */ 8 class myIterator implements Iterator{ 9 //先定義一個位置 10 private $position = 0; 11 private $array; 12 13 public function __construct(array $array){ 14 $this->array = $array; 15 } 16 /** 17 * 倒帶第一個元素的迭代器 18 * @return void 任何返回值將被忽略. 19 */ 20 public function rewind(){ 21 var_dump(__METHOD__); 22 $this->position = 0; 23 } 24 /** 25 * 檢查當前位置是有效的 26 * @return boolean 返回值將bool型布爾,然後評估 27 */ 28 public function valid(){ 29 var_dump(__METHOD__); 30 //判斷數組第一個元素是否存在 31 return isset($this->array[$this->position]); 32 } 33 /** 34 * 返回當前元素 35 * @return mixed 可以返回任何類型。 36 */ 37 public function current(){ 38 var_dump(__METHOD__); 39 //返回數組的第一個元素 40 return $this->array[$this->position]; 41 } 42 /** 43 * 返回當前元素的關鍵 44 * @return mixed 標量成功,或null失敗 45 */ 46 public function key(){ 47 var_dump(__METHOD__); 48 //返回數組第一個元素的key 49 return $this->position; 50 } 51 /** 52 * 前進到下一個元素 53 * @return void 任何返回值將被忽略。 54 */ 55 public function next(){ 56 var_dump(__METHOD__); 57 ++ $this->position; 58 } 59 } 60 61 $array=[ 62 "firstelement", 63 "secondeleent", 64 "lastelement" 65 ]; 66 67 $it = new myIterator($array); 68 foreach ($it as $key=>$value) { 69 echo $key.' => '.$value; 70 echo "<br>"; 71 }
執行結果: