Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

IteratorAggregate

Интерфейс объектов, которые можно перебрать в `foreach`.

Синтаксис

class Name implements IteratorAggregate

Возвращаемое значение

TraversableМетод `getIterator()` возвращает итератор или генератор.

Примеры

Перебор через генератор:

<?php
 
class Team implements IteratorAggregate
{
    public function __construct(private array $members) {}
 
    public function getIterator(): Generator
    {
        yield from $this->members;
    }
}
 
foreach (new Team(['Anna', 'Oleg']) as $index => $name) {
    echo $index, ': ', $name, "\n";
}

Результат:

0: Anna
1: Oleg

Примечания

Это самый короткий способ сделать объект перебираемым. Интерфейс Iterator нужен, только когда перебором надо управлять вручную.

См. также

  • Iterator — Интерфейс с пятью методами для ручного управления перебором.
  • Generator — Объект, который возвращает функция с `yield`.
  • iterator_to_array — Превращает итератор или генератор в массив.

В учебнике

  • Встроенные интерфейсы — Интерфейсы PHP, которые учат объект вести себя как массив — Countable, IteratorAggregate, ArrayAccess, JsonSerializable и Stringable.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.