您的位置:首页 > 编程语言 > PHP开发

php设计模式(迭代器模式)

2017-07-02 01:03 711 查看
/**
* 1.迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
* 2.相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作
*/
/**
* 迭代器需要实现系统内置的接口,
* 并且实现接口的五个方法;
*
*/
class AllUser implements Iterator{//系统内置的接口
protected $ids;
protected $data = [];//
protected $index;//当前位置
public function __construct(){
$db = Factory::createDB();
$result = $db->query('select id from user');
$this->ids = $result->fetch_all(MYSQLI_ASSOC);
}
//获取下一个元素
public function next(){
$this->index++;
}
//印证当前是否还有下一个元素
public function valid(){
//返回当前索引是不是超出了 ids 的范围
return $this->index < count($this->ids);
}
//获取当前的元素
public function current(){
//获取当前的元素
$id = $this->ids[$this->index]['id'];
return Factory::getUser($id);

}
//重置迭代器
public function rewind()
{
//将index重置为0
$this->index = 0;
}
//迭代器的位置
public function key()
{
return $this->index;
}

}
$users = new AllUser();
foreach ($users as $user){
var_dump($user);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: