2013-04-21 52 views
2

PHP(5.4.x)允許創建可以放入foreach循環的自定義迭代器?我正在訪問一個Web API,它只允許一個人爲每個調用拉N行/對象,這會導致笨重的本地代碼 - 例如抓取一個外部循環來自API的一批數據和用於處理每個批次的元素的內部循環。在PHP 5.4.x中定義自定義迭代器?

我寧願外環推入一個迭代(即下拉的數據塊,並跟蹤索引到外部API等),所以我可以更多這樣寫的代碼:

$datastream = new ApiIterator(/*params here*/); 
foreach($datastream as $row){ 
    // do inner loop processing here 
} 

謝謝!

+1

是的,迭代器類可以是一個有點笨重,由於量樣板代碼需要編寫一個基本的迭代器。您可能有興趣知道PHP 5.5(目前處於測試階段,即將發佈的最終版本)包含一個稱爲Generators的特性,它允許與迭代器類似的功能,但代碼少得多。仍然有些情況下,編寫一個迭代器會更好,但是對於迭代器的大多數更簡單的用例來說,生成器將會是一個很好的替代品。 – Spudley 2013-04-21 16:11:21

回答