Объяснение Возвращаемых Значений IteratorAggregate :: getIterator

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

Возвращаемые значения — «Экземпляр объекта, реализующего Iterator или Traversable»

1) То, что возвращается, всегда является экземпляром объекта, верно? (Я предполагаю, что да, но я хочу убедиться).

По этому URL: http://php.net/manual/en/class.iteratoraggregate.php

IteratorAggregate расширяет Traversable. Кто-то также сказал мне, что Итератор также расширяет Traversable. Traversable — это скорее внутренняя вещь (написанная на C, я полагаю), и она недоступна с уровня PHP.

Итератор, с которым я знаком, это текущий, ключ, следующий, перемотка, действительная «вещь». Итак, что возвращает getIterator, может реализовывать это, а если нет, то будет реализовывать что-то, что происходит из Traversable 100% времени? И Итератор не будет происходить из Traversable тогда?

Я имею в виду, это правильно, или я чего-то не понимаю?

1

Решение

Некоторые из классов в расширениях реализуют только Traversable, а не Iterator.

Список их можно найти здесь:
https://github.com/hakre/Iterator-Garden/blob/master/TRAVERSABLES.md

Пример кода (Traversable yes, а не Iterator):
https://eval.in/988102

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]