PHP迭代器示例代码:

    1. <?php
    2. class AllUser implements \Iterator
    3. {
    4. private $arr=['name','age','ood','sex'];
    5. private $key = 0 ;
    6. #重置当前下标
    7. public function rewind()
    8. {
    9. echo __METHOD__.'</br>';
    10. $this->key = 0;
    11. }
    12. #获取当前元素值
    13. public function current()
    14. {
    15. echo __METHOD__ . '</br>';
    16. return $this->arr[$this->key];
    17. }
    18. #获取当前下标
    19. public function key(){
    20. echo __METHOD__ . '</br>';
    21. return $this->key;
    22. }
    23. #当前下标增加
    24. public function next(){
    25. echo __METHOD__ . '</br>';
    26. $this->key++;
    27. }
    28. #判断当前元素是否存在
    29. public function valid()
    30. {
    31. echo __METHOD__ . '</br>';
    32. return isset($this->arr[$this->key]);
    33. }
    34. }
    35. //实现迭代遍历用户表
    36. $users = new AllUser();
    37. foreach($users as $key=>$value){
    38. echo $key.'---'.$value.'</br>';
    39. }

    迭代器:类继承PHP的Iterator接口,批量操作。

    1. 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。
    2. 相比传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作。
      接口Iterator顺序:

    rewind() 返回到迭代器的第一个元素 执行1次
    valid() 检查当前元素是否存在 执行N+1次
    current() 返回当前元素 执行N次
    next() 向前移动到下一个元素 执行N次
    key() 返回当前元素的键 执行N次

    1. 继承类必须要完成5个父类的抽象方法