ПОЖАЛУЙСТА, ПРОВЕРЬТЕ ОТВЕТЫ от VolkerK, он предоставил другое решение, но я не могу отметить два сообщения в качестве ответа. :(Возможны ли множественные итераторы в php?
Добрый день
Я знаю, что C# позволяет использовать несколько итераторов, используя выход, как описано здесь: Is Multiple Iterators is possible in c#?
В PHP есть и итератор интерфейс Можно ли реализовать больше. чем одной итерации сценария для класса
Подробнее (EDIT):
к примеру I имеют класс TreeNode, реализующий единый узел дерева. Все дерево может быть выражено только одним классом. Я хочу предоставить итераторы для итерации всех прямых и косвенных дочерних узлов текущего узла, например, используя BreadthFirst или DepthFirst order.
Я могу реализовать эти итераторы в качестве отдельных классов, но при этом мне нужно, чтобы узел дерева отображал свою коллекцию детей как общедоступную.
C# псевдокод:
public class TreeNode<T>
{
...
public IEnumerable<T> DepthFirstEnumerator
{
get
{
// Some tree traversal using 'yield return'
}
}
public IEnumerable<T> BreadthFirstEnumerator
{
get
{
// Some tree traversal using 'yield return'
}
}
}
Хороший материал, это хорошо, чтобы соединить знания по языкам Дев, это кажется. –
Какую часть принятого ответа интересует? Часть, где класс «предлагает» разные итераторы или часть, где одновременно используются два итератора одного и того же объекта? Или оба? ;-) – VolkerK
Мне интересен случай, когда класс предлагает разные итераторы – artvolk