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 < count($this->ids); } //使當前的指標回到開始位置functionrewind() {$this->index = 0; } //擷取當前的索引值functionkey() {return$this->index; }}
3.執行代碼
//迭代器模式執行個體$users = new AllUser();foreach ($usersas$user) { var_dump($user); echo'';}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了php設計模式之迭代器模式,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。