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
?>
The Traversable interface
(No version information available, might only be in SVN)
Introduction
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.
Note:
Internal (built-in) classes that implement this interface can be used in a foreach construct and do not need to implement IteratorAggregate or Iterator.
Note:
This is an internal engine interface which cannot be implemented in PHP scripts. Either IteratorAggregate or Iterator must be used instead.
Interface synopsis
Traversable
{
}This interface has no methods, its only purpose is to be the base interface for all traversable classes.
kevinpeno at gmail dot com
02-Aug-2010 12:06
