While you cannot implement this interface, you can use it in your checks to determine if something is usable in for each. Here is what I use if I'm expecting something that must be iterable via foreach.
<?php
if( !is_array( $items ) && !$items instanceof Traversable )
//Throw exception here
?>
Интерфейс Traversable
(Информация о версии неизвестна, возможно, только в SVN)
Введение
Интерфейс, определяющий, является ли класс обходимым (traversable) используя foreach.
Абстрактный базовый интерфейс, который не может быть реализован сам по себе. Вместо этого он должен быть реализован используя IteratorAggregate или Iterator.
Замечание:
Внутренние (встроенные) классы, которые реализуют этот интерфейс, могут быть использованы в конструкции foreach и не обязаны реализовывать IteratorAggregate или Iterator.
Замечание:
Это внутренний интерфейс, который не может быть реализован в скрипте PHP. Вместо него нужно использовать либо IteratorAggregate, либо Iterator. При реализации интерфейса, наследующего от Traversable, убедитесь, что в секции implements перед его именем стоит IteratorAggregate или Iterator.
Обзор интерфейсов
Этот интерфейс не имеет методов, его единственная цель - быть базовым интерфейсом для всех обходимых классов.
