試試我可能無法理解IteratorIterator類實際執行的操作。我知道類可以實現Traversable,因此引擎知道它可以循環使用foreach 和我意識到IteratorIterator應該將任何可以穿越的東西都轉換成迭代器,但是我不能爲我的生活理解如何。PHP IteratorIterator類如何工作?
舉例來說,PDOStatement類;標準Iterator方法(next,key,rewind等)將如何實現以允許迭代PDOtatement?
對不起,如果我的問題不清楚,我只是努力去掌握這個類的確切原因,而且它的文檔很少。
感謝,
威爾
更新:通過PHPT文件去,我發現了一個測試,使用IteratorIterator:
<?php
$root = simplexml_load_string('<?xml version="1.0"?>
<root>
<child>Hello</child>
<child>World</child>
</root>
');
foreach (new IteratorIterator($root->child) as $child) {
echo $child."\n";
}
?>
的預期結果是:
Hello
World
我並不真正遵循IteratorIterator構造如何將$ root-> child作爲一個參數以及它如何管理迭代子元素。
我找到了答案[here](http://blog.ircmaxell.com/2011/10/iteratoriterator-php-inconsistencies.html)。 但在我看來,IteratorIterator現在變得不重要了,不是嗎? – akond