尽我所能,我无法理解 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";
}
?>
预期的输出是:
Hello
World
我并不真正了解 IteratorIterator 构造如何将 $root->child 作为参数以及它如何设法遍历子元素。