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