php迭代器

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 } 

 

执行结果:

posted @ 2015-11-18 10:46  x_liang  阅读(336)  评论(0编辑  收藏  举报