(PHP 5 >= 5.0.0, PHP 7)
Examples:
Basic usage
This example demonstrates in which order methods are called when using foreach with an iterator.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php class myIterator implements Iterator { private $position = 0; private $array = array ( "firstelement" , "secondelement" , "lastelement" , ); public function __construct() { $this ->position = 0; } function rewind () { var_dump( __METHOD__ ); $this ->position = 0; } function current() { var_dump( __METHOD__ ); return $this -> array [ $this ->position]; } function key() { var_dump( __METHOD__ ); return $this ->position; } function next() { var_dump( __METHOD__ ); ++ $this ->position; } function valid() { var_dump( __METHOD__ ); return isset( $this -> array [ $this ->position]); } } $it = new myIterator; foreach ( $it as $key => $value ) { var_dump( $key , $value ); echo "\n" ; } ?> |
The above example will output something similar to:
string(18) "myIterator::rewind" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(0) string(12) "firstelement" string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(1) string(13) "secondelement" string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(2) string(11) "lastelement" string(16) "myIterator::next" string(17) "myIterator::valid"