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 }
執行結果:
