我试图通过这个官方页面上的例子得到一个概述和理解PHP迭代器。有人能给我解释一下吗?至于它的用途以及如何计算结果,如页面所示。
指向PHP迭代器的链接:http://php.net/manual/en/class.iterator.php
PHP Iterator本质上是一个可搜索的对象。它的主要特性是它能顺利地通过foreach
,并且表现得很好。而不是像这样:
foreach (myFunction() as $v) {
doSomethingWith($v);
}
你可以创建一个Iterator (Seekable, Rewindable等)来简化工作,还可以绑定任何你想要的东西,允许你只做一次工作。
创建一个Iterator对象并调用foreach ($object as $r)
(按顺序)执行以下操作:
- 倒带迭代器(调用
$object->rewind()
) - 检查
$object->valid()
当前操作是否有效,如果需要终止循环 - 如果循环没有终止,使用
$object->current()
和$object->key()
返回当前项目和键,并使用$object->next()
移动到下一个对象 - 进入第二步
非常简单的结构,只是因为它是一个SPL接口。实际上,它的唯一目的是允许您的对象通过foreach
。不多不少。您可以将它们用于各种用途—我最近使用了一个来简化从IMAP服务器生成的消息的循环过程(并确保我只执行了一次处理)。
RecursiveDirectoryIterator
,它极大地减轻了递归遍历目录的负担。
希望这有帮助。有任何问题,请随时评论,我会详细说明。