迭代器模式
- 不了解内部实现前提下,遍历一个对象
// 继承内置的迭代器接口,实现五个方法
class Alluser implements \Iterator{
private $ids; // 存入所有需要迭代的数据
private $index; // 记录当前迭代器位置
public function __construct(){
$rlt = "select id from user";
$this->ids = $rlt-。fetch();
}
public function current() {
return $this->ids[$this->index];
}
// 下一个元素
public function next(){
$this->index++;
}
// 验证元素是否存在
public function valid(){
return !empty($this->ids[$this->index]);
}
// 初始化迭代器到头部
public function rewind(){
$this->index = 0;
}
// 获取当前索引
public function key(){
return $this->index;
}
}
$users = new AllUser();
foreach($users as $user){
var_dump($user);
}