尽我所能我无法理解IteratorIterator类实际上做的事情.我知道类可以实现Traversable,所以引擎知道它可以使用foreach循环,我意识到IteratorIterator应该将Traversable中的任何东西转换为Iterator,但我不能在生活中理解如何.
以PDOStatement类为例; 如何实现标准迭代器方法(下一步,密钥,倒带等)以允许迭代PDOStatement?
对不起,如果我的问题不清楚,我只是在努力掌握这个课程的确切原因,而且关于它的文档很少.
谢谢,
将
更新:通过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";
}
?>
Run Code Online (Sandbox Code Playgroud)
预期的产出是:
Hello
World
Run Code Online (Sandbox Code Playgroud)
我并没有真正遵循IteratorIterator构造如何将$ root-> child作为参数以及它如何设法迭代子元素.