PHP迭代器示例代码:
<?phpclass AllUser implements \Iterator{private $arr=['name','age','ood','sex'];private $key = 0 ;#重置当前下标public function rewind(){echo __METHOD__.'</br>';$this->key = 0;}#获取当前元素值public function current(){echo __METHOD__ . '</br>';return $this->arr[$this->key];}#获取当前下标public function key(){echo __METHOD__ . '</br>';return $this->key;}#当前下标增加public function next(){echo __METHOD__ . '</br>';$this->key++;}#判断当前元素是否存在public function valid(){echo __METHOD__ . '</br>';return isset($this->arr[$this->key]);}}//实现迭代遍历用户表$users = new AllUser();foreach($users as $key=>$value){echo $key.'---'.$value.'</br>';}
迭代器:类继承PHP的Iterator接口,批量操作。
- 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。
- 相比传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作。
接口Iterator顺序:
rewind() 返回到迭代器的第一个元素 执行1次
valid() 检查当前元素是否存在 执行N+1次
current() 返回当前元素 执行N次
next() 向前移动到下一个元素 执行N次
key() 返回当前元素的键 执行N次
- 继承类必须要完成5个父类的抽象方法
