The Traversable interface

(PHP 5 >= 5.0.0)


Interface to detect if a class is traversable using foreach.

Abstract base interface that cannot be implemented alone. Instead it must be implemented by either IteratorAggregate or Iterator.


Internal (built-in) classes that implement this interface can be used in a foreach construct and do not need to implement IteratorAggregate or Iterator.


This is an internal engine interface which cannot be implemented in PHP scripts. Either IteratorAggregate or Iterator must be used instead. When implementing an interface which extends Traversable, make sure to list IteratorAggregate or Iterator before its name in the implements clause.

Sommario dell'interfaccia

Traversable {

This interface has no methods, its only purpose is to be the base interface for all traversable classes.

add a note add a note

User Contributed Notes 2 notes

kevinpeno at gmail dot com
5 years ago
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.

if( !is_array( $items ) && !$items instanceof Traversable )
//Throw exception here
ajf at ajf dot me
11 months ago
Note that all objects can be iterated over with foreach anyway and it'll go over each property. This just describes whether or not the class implements an iterator, i.e. has custom behaviour.
To Top