helly Wed Apr 28 17:52:51 2004 EDT Added files: /php-src/ext/spl/examples norewinditerator.inc /php-src/ext/spl/examples/tests iterators_003.phpt iterators_004.phpt
Modified files: /php-src/ext/spl/examples appenditerator.inc /php-src/ext/spl/examples/tests examples.inc Log: - More examples http://cvs.php.net/diff.php/php-src/ext/spl/examples/appenditerator.inc?r1=1.3&r2=1.4&ty=u Index: php-src/ext/spl/examples/appenditerator.inc diff -u php-src/ext/spl/examples/appenditerator.inc:1.3 php-src/ext/spl/examples/appenditerator.inc:1.4 --- php-src/ext/spl/examples/appenditerator.inc:1.3 Wed Apr 28 15:58:47 2004 +++ php-src/ext/spl/examples/appenditerator.inc Wed Apr 28 17:52:51 2004 @@ -18,6 +18,11 @@ function append(Iterator $it) { $this->iterators->append($it); + if (!$this->valid()) + { + $this->iterators->seek($this->iterators->count() - 1); + $this->iterators->current()->rewind(); + } } function getInnerIterator() @@ -30,7 +35,7 @@ $this->iterators->rewind(); if ($this->iterators->valid()) { - $this->iterators->rewind(); + $this->getInnerIterator()->rewind(); } } http://cvs.php.net/diff.php/php-src/ext/spl/examples/tests/examples.inc?r1=1.1&r2=1.2&ty=u Index: php-src/ext/spl/examples/tests/examples.inc diff -u php-src/ext/spl/examples/tests/examples.inc:1.1 php-src/ext/spl/examples/tests/examples.inc:1.2 --- php-src/ext/spl/examples/tests/examples.inc:1.1 Wed Apr 28 16:10:21 2004 +++ php-src/ext/spl/examples/tests/examples.inc Wed Apr 28 17:52:51 2004 @@ -15,6 +15,8 @@ $classes = array( 'EmptyIterator', 'InfiniteIterator', + 'AppendIterator', + 'NoRewindIterator', ); foreach (new IncludeFiles(dirname(__FILE__). '/..', $classes) as $file) http://cvs.php.net/co.php/php-src/ext/spl/examples/norewinditerator.inc?r=1.1&p=1 Index: php-src/ext/spl/examples/norewinditerator.inc +++ php-src/ext/spl/examples/norewinditerator.inc <?php /** * @brief An Iterator that doesn't call rewind * @author Marcus Boerger * @version 1.0 * */ class NoRewindIterator implements Iterator { protected $it; function __construct(Iterator $it) { $this->it = $it; } function rewind() { // nothing to do } function valid() { return $this->it->valid(); } function current() { return $this->it->current(); } function key() { return $this->it->key(); } function next() { $this->it->next(); } } ?> http://cvs.php.net/co.php/php-src/ext/spl/examples/tests/iterators_003.phpt?r=1.1&p=1 Index: php-src/ext/spl/examples/tests/iterators_003.phpt +++ php-src/ext/spl/examples/tests/iterators_003.phpt --TEST-- SPL: NoRweindIterator --FILE-- <?php require_once('examples.inc'); echo "===Current===\n"; $it = new NoRewindIterator(new ArrayIterator(array(0 => 'A', 1 => 'B', 2 => 'C'))); echo $it->key() . '=>' . $it->current() . "\n"; echo "===Next===\n"; $it->next(); echo "===Foreach===\n"; foreach($it as $key=>$val) { echo "$key=>$val\n"; } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- ===Current=== 0=>A ===Next=== ===Foreach=== 1=>B 2=>C ===DONE=== http://cvs.php.net/co.php/php-src/ext/spl/examples/tests/iterators_004.phpt?r=1.1&p=1 Index: php-src/ext/spl/examples/tests/iterators_004.phpt +++ php-src/ext/spl/examples/tests/iterators_004.phpt --TEST-- SPL: AppendIterator --FILE-- <?php require_once('examples.inc'); echo "===Empty===\n"; $it = new AppendIterator; foreach($it as $key=>$val) { echo "$key=>$val\n"; } echo "===Append===\n"; $it->append(new ArrayIterator(array(0 => 'A', 1 => 'B'))); foreach($it as $key=>$val) { echo "$key=>$val\n"; } echo "===Rewind===\n"; foreach($it as $key=>$val) { echo "$key=>$val\n"; } echo "===Append===\n"; $it->append(new ArrayIterator(array(2 => 'C', 3 => 'D'))); foreach(new NoRewindIterator($it) as $key=>$val) { echo "$key=>$val\n"; } echo "===Rewind===\n"; foreach($it as $key=>$val) { echo "$key=>$val\n"; } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- ===Empty=== ===Append=== 0=>A 1=>B ===Rewind=== 0=>A 1=>B ===Append=== 2=>C 3=>D ===Rewind=== 0=>A 1=>B 2=>C 3=>D ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php