summaryrefslogtreecommitdiff
path: root/tests/classes/iterators_006.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /tests/classes/iterators_006.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'tests/classes/iterators_006.phpt')
-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 0000000..47fa690
--- /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 valid() {
+ 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->valid();
+#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