1<?php 2 3/** @file infiniteiterator.inc 4 * @ingroup SPL 5 * @brief class InfiniteIterator 6 * @author Marcus Boerger 7 * @date 2003 - 2009 8 * 9 * SPL - Standard PHP Library 10 */ 11 12/** @ingroup SPL 13 * @brief An infinite Iterator 14 * @author Marcus Boerger 15 * @version 1.1 16 * @since PHP 5.1 17 * 18 * This Iterator takes another Iterator and infinitvely iterates it by 19 * rewinding it when its end is reached. 20 * 21 * \note Even an InfiniteIterator stops if its inner Iterator is empty. 22 * 23 \verbatim 24 $it = new ArrayIterator(array(1,2,3)); 25 $infinite = new InfiniteIterator($it); 26 $limit = new LimitIterator($infinite, 0, 5); 27 foreach($limit as $val=>$key) 28 { 29 echo "$val=>$key\n"; 30 } 31 \endverbatim 32 */ 33class InfiniteIterator extends IteratorIterator 34{ 35 /** Move the inner Iterator forward to its next element or rewind it. 36 * @return void 37 */ 38 function next() 39 { 40 $this->getInnerIterator()->next(); 41 if (!$this->getInnerIterator()->valid()) 42 { 43 $this->getInnerIterator()->rewind(); 44 } 45 } 46} 47 48?> 49