<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>The Traversable interface</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="reserved.interfaces.html">Predefined Interfaces and Classes</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.iterator.html">Iterator</a></div> <div class="up"><a href="reserved.interfaces.html">Predefined Interfaces and Classes</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="class.traversable" class="reference"> <h1 class="title">The Traversable interface</h1> <div class="partintro"><p class="verinfo">(PHP 5 >= 5.0.0)</p> <div class="section" id="traversable.intro"> <h2 class="title">Introduction</h2> <p class="para"> Interface to detect if a class is traversable using <a href="control-structures.foreach.html" class="link">foreach</a>. </p> <p class="para"> Abstract base interface that cannot be implemented alone. Instead it must be implemented by either <a href="class.iteratoraggregate.html" class="classname">IteratorAggregate</a> or <a href="class.iterator.html" class="classname">Iterator</a>. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para"> Internal (built-in) classes that implement this interface can be used in a <a href="control-structures.foreach.html" class="link">foreach</a> construct and do not need to implement <a href="class.iteratoraggregate.html" class="classname">IteratorAggregate</a> or <a href="class.iterator.html" class="classname">Iterator</a>. </p> </p></blockquote> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para"> This is an internal engine interface which cannot be implemented in PHP scripts. Either <a href="class.iteratoraggregate.html" class="classname">IteratorAggregate</a> or <a href="class.iterator.html" class="classname">Iterator</a> must be used instead. When implementing an interface which extends Traversable, make sure to list <a href="class.iteratoraggregate.html" class="classname">IteratorAggregate</a> or <a href="class.iterator.html" class="classname">Iterator</a> before its name in the implements clause. </p> </p></blockquote> </div> <div class="section" id="traversable.synopsis"> <h2 class="title">Interface synopsis</h2> <div class="classsynopsis"> <div class="ooclass"></div> <div class="classsynopsisinfo"> <span class="ooclass"> <strong class="classname">Traversable</strong> </span> {</div> }</div> <p class="para"> This interface has no methods, its only purpose is to be the base interface for all traversable classes. </p> </div> </div> </div> <hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="reserved.interfaces.html">Predefined Interfaces and Classes</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.iterator.html">Iterator</a></div> <div class="up"><a href="reserved.interfaces.html">Predefined Interfaces and Classes</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>