欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php设计模式之迭代器模式

程序员文章站 2022-06-08 09:58:44
...
1.概念介绍

1.迭代器模式:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。
2.相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作。
3.这里介绍的迭代器需要实现(implements)PHP SPL 里面的Iterator,需要实现5个方法(current, next,valid,rewid,key)

2.代码展示

namespacebraveclassAllUserimplements \Iterator
{
    //所有useridprotected $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