php设计模式之迭代器模式
程序员文章站
2024-01-05 16:18:16
...
1.概念介绍
1.迭代器模式:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。
2.相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作。
3.这里介绍的迭代器需要实现(implements)PHP SPL 里面的Iterator
,需要实现5个方法(current, next,valid,rewid,key)
2.代码展示
namespacebraveclassAllUserimplements \Iterator
{
//所有user的idprotected $ids;
//保存数据库查询的对象,如果有就不需要在次查询了,可使用注册模式protected$data = array();
//表示迭代器当前的位置protected$index;
function__construct()
{$db = Factory::getDatabase();
$result = $db->query("select id from user");
$this->ids = $result->fetch_all(MYSQLI_ASSOC);
}
//获取当前用户对象functioncurrent()
{$id = $this->ids[$this->index]['id'];
return Factory::getUser($id);
}
//进入下一个索引functionnext()
{$this->index ++;
}
//检查当前是否有数据functionvalid()
{return$this->index $this