function testLimitIterator() { $this->assertEquals(3, $this->_domainObjectCollection->getTotalRecordCount()); $limitIT = new LimitIterator($this->_domainObjectCollection, 1, 2); $limitIT->rewind(); $this->assertEquals($this->_domObject2, $limitIT->current()); $limitIT->next(); $this->assertEquals($this->_domObject3, $limitIT->current()); }
/** * Find one file and return. * * @param string $path The directory path. * @param mixed $condition Finding condition, that can be a string, a regex or a callback function. * Callback example: * <code> * function($current, $key, $iterator) * { * return @preg_match('^Foo', $current->getFilename()) && ! $iterator->isDot(); * } * </code> * @param boolean $recursive True to resursive. * * @return \SplFileInfo Finded file info object. * * @since 2.0 */ public static function findOne($path, $condition, $recursive = false) { $iterator = new \LimitIterator(static::find($path, $condition, $recursive), 0, 1); $iterator->rewind(); return $iterator->current(); }
/** * Find one file and return. * * @param mixed $condition Finding condition, that can be a string, a regex or a callback function. * Callback example: * <code> * function($current, $key, $iterator) * { * return @preg_match('^Foo', $current->getFilename()) && ! $iterator->isDot(); * } * </code> * @param boolean $recursive True to resursive. * * @return \SplFileInfo Finded file info object. * * @since 1.0 */ public function find($condition, $recursive = false) { $iterator = new \LimitIterator($this->findAll($condition, $recursive), 0, 1); $iterator->rewind(); return $iterator->current(); }
public function getLatestEpisode() { $iterator = new \LimitIterator(new PastEpisodeFilterIterator(new \ArrayIterator($this->buildEpisodesList())), 0, 1); $iterator->rewind(); return $iterator->current(); }
echo $e->getMessage(); } echo '----------------------------------- CachingIterator END ---------------------------------', '<br />'; echo '--------------------------------- LimitIterator END-----------------------------------', '<br />'; /** * LimitIterator 遍历一个Iterator的限定子集 * 在__construct有两个可选参数:offset 和 count */ $array = array('apple', 'banana', 'cherry', 'damson', 'elderberry'); $fruits = new ArrayIterator($array); $offset = 3; $count = 2; $limitIt = new LimitIterator($fruits, $offset, $count); // 如果增加了offset,那么只有两个数,但是rewind时,节点值不会变成0,而是被截取的值offset。 // getPosition 获得当前节点的位置 $limitIt->rewind(); var_dump($limitIt->getPosition()); foreach ($limitIt as $item) { echo $item, '<br />'; } echo '--------------------------------- LimitIterator START-----------------------------------', '<br />'; echo '----------------------------------- SplFileObject END ---------------------------------', '<br />'; /** * SplFileObject 对文本文件进行遍历 */ $file = '/data/www/test.php'; $fileIt = new SplFileObject($file); // 遍历获得所有的文本,按行遍历 /*foreach ($fileIt AS $item) { echo $item, '<br />'; }*/