]> granicus.if.org Git - php/commitdiff
Add new iterator test inspired by bug #26527
authorMarcus Boerger <helly@php.net>
Tue, 18 Nov 2003 07:33:30 +0000 (07:33 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 18 Nov 2003 07:33:30 +0000 (07:33 +0000)
tests/classes/iterators_006.phpt [new file with mode: 0644]

diff --git a/tests/classes/iterators_006.phpt b/tests/classes/iterators_006.phpt
new file mode 100644 (file)
index 0000000..5f85224
--- /dev/null
@@ -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