Интерфейс Traversable

(PHP 5, PHP 7, PHP 8)

Введение

Интерфейс, который определяет, доступен ли обход класса конструкцией foreach.

Нельзя реализовать сам абстрактный базовый интерфейс. Вместо этого реализуют либо интерфейс IteratorAggregate, либо интерфейс Iterator.

Обзор интерфейса

interface Traversable {
}

У интерфейса нет методов. Единственная цель интерфейса — быть базовым интерфейсом для классов, которым доступен обход.

Список изменений

Версия Описание
7.4.0 Реализовывать интерфейс Traversable теперь разрешается абстрактным классам. Расширяющие классы должны реализовывать интерфейс Iterator или IteratorAggregate.

Примечания

Замечание:

Внутренние, или встроенные, классы, которые реализуют этот интерфейс, разрешается обходить конструкцией foreach, и такие классы не обязаны реализовывать интерфейс IteratorAggregate или Iterator.

Замечание:

До PHP 7.4.0 этот внутренний интерфейс движка нельзя было реализовать в PHP-скриптах. Вместо этого требовалось реализовывать либо IteratorAggregate, либо Iterator.