PHP 設計模式 十二 迭代器模式

2021-09-29 10:43:58 字數 1244 閱讀 5116

什麼迭代器模式

迭代器模式(iterator),又叫做游標(cursor)模式。提供一種方法訪問乙個容器(container)物件中各個元素,而又不需暴露該物件的內部細節。 迭代器模式為遍歷不同的聚集結構提供如開始、下乙個、是否結束、當前哪一項等統一的介面。

php標準庫(spl)中提供了迭代器介面 iterator,要實現迭代器模式,實現該介面即可。

應用場景

當你需要訪問乙個聚合物件,而且不管這些物件是什麼都需要遍歷的時候,就應該考慮使用迭代器模式。另外,當需要對聚集有多種方式遍歷時,可以考慮去使用迭代器模式。

php **實現

<?php

/** * 迭代器模式

* class myiterator

*/class myiterator implements iterator

}public function rewind()

public function current()

public function key()

public function next()

public function valid() ";

echo "

"; return $var;

}}//********************===迭代器模式測試******************************=

$values = array(1,2,3);

$it = new myiterator($values);

foreach ($it as $k => $v)

//結果

//倒回第乙個元素

//當前元素: 1

//檢查有效性: 1

//當前元素: 1

//當前元素的鍵: 0

//此時鍵值對 -- key 0: value 1

//移向下乙個元素: 2

//當前元素: 2

//檢查有效性: 1

//當前元素: 2

//當前元素的鍵: 1

//此時鍵值對 -- key 1: value 2

//移向下乙個元素: 3

//當前元素: 3

//檢查有效性: 1

//當前元素: 3

//當前元素的鍵: 2

//此時鍵值對 -- key 2: value 3

//移向下乙個元素:

//當前元素:

//檢查有效性:

PHP設計模式 迭代器模式

web開發筆記 www.chhua.com 每日練習 php設計模式 迭代器模式 呵呵,迭代器模式是php開發中非常有用的乙個設計模式,其主要的應用範圍如下 一 使用返回迭代器的包或庫時 如php5中的spl迭代器 二 無法在一次的呼叫獲取容器的所有元素時 三 要處理數量巨大的無素時 資料庫中的表以...

php設計模式(迭代器模式)

1.迭代器模式,在不需要了解內部實現的前提下,遍歷乙個聚合物件的內部元素 2.相比於傳統的程式設計模式,迭代器模式可以隱藏遍歷元素的所需的操作 迭代器需要實現系統內建的介面,並且實現介面的五個方法 class alluser implements iterator 獲取下乙個元素 public fu...

PHP 設計模式之迭代器模式

在不需要了解內部實現的前提條件下,可以遍歷乙個聚合物件的內部元素 相比於傳統的程式設計模式,迭代器模式可以隱藏遍歷元素所需的操作 class alluser implements iterator public function current public function next 第乙個呼叫 ...