helly           Tue Nov 18 02:33:31 2003 EDT

  Added files:                 
    /php-src/tests/classes      iterators_006.phpt 
  Log:
  Add new iterator test inspired by bug #26527
  

Index: php-src/tests/classes/iterators_006.phpt
+++ php-src/tests/classes/iterators_006.phpt
--TEST--
ZE2 iterators and array wrapping
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is 
needed'); ?> 
--FILE--
<?php

class ai implements Iterator {

        private $array;

        function __construct() {
                $this->array = array('foo', 'bar', 'baz');
        }

        function rewind() {
                reset($this->array);
                $this->next();
        }

        function hasMore() {
                return $this->key !== NULL;
        }

        function key() {
                return $this->key;
        }

        function current() {
                return $this->current;
        }

        function next() {
                list($this->key, $this->current) = each($this->array);
//              list($key, $current) = each($this->array);
//              $this->key = $key;
//              $this->current = $current;
        }
}

class a implements IteratorAggregate {

        public function getIterator() {
                return new ai();
        }
}

$array = new a();

foreach ($array as $property => $value) {
        print "$property: $value\n";    
}

#$array = $array->getIterator();
#$array->rewind();
#$array->hasMore();
#var_dump($array->key());
#var_dump($array->current());
echo "===2nd===\n";

$array = new ai();

foreach ($array as $property => $value) {
        print "$property: $value\n";    
}

echo "===3rd===\n";

foreach ($array as $property => $value) {
        print "$property: $value\n";    
}

?>
===DONE===
--EXPECT--
0: foo
1: bar
2: baz
===2nd===
0: foo
1: bar
2: baz
===3rd===
0: foo
1: bar
2: baz
===DONE===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to