diff options
author | Marcus Boerger <helly@php.net> | 2003-11-18 07:33:30 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-11-18 07:33:30 +0000 |
commit | cf1a6108eb50030baeff93745ca2e7943d1bed90 (patch) | |
tree | 8f1e093a143d695eb1c6072137604dce6cce4c87 /tests | |
parent | 1eaf126a7a76124586c29ce978500d1fd22e8988 (diff) | |
download | php-git-cf1a6108eb50030baeff93745ca2e7943d1bed90.tar.gz |
Add new iterator test inspired by bug #26527
Diffstat (limited to 'tests')
-rw-r--r-- | tests/classes/iterators_006.phpt | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/classes/iterators_006.phpt b/tests/classes/iterators_006.phpt new file mode 100644 index 0000000000..5f85224b12 --- /dev/null +++ b/tests/classes/iterators_006.phpt @@ -0,0 +1,87 @@ +--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===
\ No newline at end of file |