|
SPL-StandardPHPLibrary
|
00001 <?php 00002 00040 class IteratorIterator implements OuterIterator 00041 { 00047 function __construct(Traversable $iterator, $classname = null) 00048 { 00049 if ($iterator instanceof IteratorAggregate) 00050 { 00051 $iterator = $iterator->getIterator(); 00052 } 00053 if ($iterator instanceof Iterator) 00054 { 00055 $this->iterator = $iterator; 00056 } 00057 else 00058 { 00059 throw new Exception("Classes that only implement Traversable can be wrapped only after converting class IteratorIterator into c code"); 00060 } 00061 } 00062 00065 function getInnerIterator() 00066 { 00067 return $this->iterator; 00068 } 00069 00072 function valid() 00073 { 00074 return $this->iterator->valid(); 00075 } 00076 00079 function key() 00080 { 00081 return $this->iterator->key(); 00082 } 00083 00086 function current() 00087 { 00088 return $this->iterator->current(); 00089 } 00090 00093 function next() 00094 { 00095 return $this->iterator->next(); 00096 } 00097 00100 function rewind() 00101 { 00102 return $this->iterator->rewind(); 00103 } 00104 00110 function __call($func, $params) 00111 { 00112 return call_user_func_array(array($this->iterator, $func), $params); 00113 } 00114 00118 private $iterator; 00119 } 00120 00121 ?>
1.7.5.1