summaryrefslogtreecommitdiff
path: root/ext/spl/tests/array_007.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/array_007.phpt')
-rw-r--r--ext/spl/tests/array_007.phpt71
1 files changed, 71 insertions, 0 deletions
diff --git a/ext/spl/tests/array_007.phpt b/ext/spl/tests/array_007.phpt
new file mode 100644
index 0000000..7d9bf6a
--- /dev/null
+++ b/ext/spl/tests/array_007.phpt
@@ -0,0 +1,71 @@
+--TEST--
+SPL: ArrayObject/Iterator from IteratorAggregate
+--FILE--
+<?php
+
+// This test also needs to exclude the protected and private variables
+// since they cannot be accessed from the external object which iterates
+// them.
+
+class test implements IteratorAggregate
+{
+ public $pub = "public";
+ protected $pro = "protected";
+ private $pri = "private";
+
+ function __construct()
+ {
+ $this->imp = "implicit";
+ }
+
+ function getIterator()
+ {
+ $it = new ArrayObject($this);
+ return $it->getIterator();
+ }
+};
+
+$test = new test;
+$test->dyn = "dynamic";
+
+print_r($test);
+
+print_r($test->getIterator());
+
+foreach($test as $key => $val)
+{
+ echo "$key => $val\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+test Object
+(
+ [pub] => public
+ [pro:protected] => protected
+ [pri:test:private] => private
+ [imp] => implicit
+ [dyn] => dynamic
+)
+ArrayIterator Object
+(
+ [storage:ArrayIterator:private] => ArrayObject Object
+ (
+ [storage:ArrayObject:private] => test Object
+ (
+ [pub] => public
+ [pro:protected] => protected
+ [pri:test:private] => private
+ [imp] => implicit
+ [dyn] => dynamic
+ )
+
+ )
+
+)
+pub => public
+imp => implicit
+dyn => dynamic
+===DONE===