summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-11-18 07:33:30 +0000
committerMarcus Boerger <helly@php.net>2003-11-18 07:33:30 +0000
commitcf1a6108eb50030baeff93745ca2e7943d1bed90 (patch)
tree8f1e093a143d695eb1c6072137604dce6cce4c87 /tests
parent1eaf126a7a76124586c29ce978500d1fd22e8988 (diff)
downloadphp-git-cf1a6108eb50030baeff93745ca2e7943d1bed90.tar.gz
Add new iterator test inspired by bug #26527
Diffstat (limited to 'tests')
-rw-r--r--tests/classes/iterators_006.phpt87
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