PHP迭代器示例代码:
<?php
class 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个父类的抽象方法