【问题标题】:Explanation of the Return Values of the IteratorAggregate::getIteratorIteratorAggregate::getIterator 返回值说明
【发布时间】:2018-04-14 06:42:02
【问题描述】:

http://php.net/manual/en/iteratoraggregate.getiterator.php

返回值 - “实现迭代器或遍历的对象的实例”

1) 所以返回的总是一个对象的实例,对吗? (我假设是的,但我想确定)。

通过这个网址:http://php.net/manual/en/class.iteratoraggregate.php

IteratorAggregate 扩展了 Traversable。有人还告诉我,Iterator 也扩展了 Traversable。 Traversable 更像是一个内部的东西(我假设用 C 编写),它不能从 PHP 级别访问。

我熟悉的Iterator,就是当前,key,next,rewind,有效的“东西”。那么 getIterator 返回的内容可以实现这个,如果不是这个,它将 100% 地实现源自 Traversable 的东西?那么 Iterator 不会源自 Traversable 吗?

我的意思是,这个措辞是否正确,还是有什么我不明白的地方?

【问题讨论】:

    标签: php iterator php-7 php-5.3 traversable


    【解决方案1】:

    扩展中的一些类只实现 Traversable,而不是 Iterator。

    这些列表可以在这里找到: https://github.com/hakre/Iterator-Garden/blob/master/TRAVERSABLES.md

    代码示例(可遍历是,而不是迭代器): https://eval.in/988102

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多