summaryrefslogtreecommitdiff
path: root/ext/spl/tests/arrayObject___construct_basic4.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 /ext/spl/tests/arrayObject___construct_basic4.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 'ext/spl/tests/arrayObject___construct_basic4.phpt')
-rw-r--r--ext/spl/tests/arrayObject___construct_basic4.phpt106
1 files changed, 106 insertions, 0 deletions
diff --git a/ext/spl/tests/arrayObject___construct_basic4.phpt b/ext/spl/tests/arrayObject___construct_basic4.phpt
new file mode 100644
index 0000000..b0809de
--- /dev/null
+++ b/ext/spl/tests/arrayObject___construct_basic4.phpt
@@ -0,0 +1,106 @@
+--TEST--
+SPL: ArrayObject::__construct basic usage with ArrayObject::ARRAY_AS_PROPS. Currently fails on php.net due to bug 45622.
+--FILE--
+<?php
+class C {
+ public $prop = 'C::prop.orig';
+}
+
+class MyArrayObject extends ArrayObject {
+ public $prop = 'MyArrayObject::prop.orig';
+}
+
+echo "\n--> Access prop on instance of ArrayObject with ArrayObject::ARRAY_AS_PROPS:\n";
+$c = new C;
+$ao = new ArrayObject($c, ArrayObject::ARRAY_AS_PROPS);
+testAccess($c, $ao);
+
+echo "\n--> Access prop on instance of MyArrayObject with ArrayObject::ARRAY_AS_PROPS:\n";
+$c = new C;
+$ao = new MyArrayObject($c, ArrayObject::ARRAY_AS_PROPS);
+testAccess($c, $ao);
+
+function testAccess($c, $ao) {
+ echo " - Iteration:\n";
+ foreach ($ao as $key=>$value) {
+ echo " $key=>$value\n";
+ }
+
+ echo " - Read:\n";
+ @var_dump($ao->prop, $ao['prop']);
+
+ echo " - Write:\n";
+ $ao->prop = 'changed1';
+ $ao['prop'] = 'changed2';
+ var_dump($ao->prop, $ao['prop']);
+
+ echo " - Isset:\n";
+ var_dump(isset($ao->prop), isset($ao['prop']));
+
+ echo " - Unset:\n";
+ unset($ao->prop);
+ unset($ao['prop']);
+ var_dump($ao->prop, $ao['prop']);
+
+ echo " - After:\n";
+ var_dump($ao, $c);
+}
+?>
+--EXPECTF--
+--> Access prop on instance of ArrayObject with ArrayObject::ARRAY_AS_PROPS:
+ - Iteration:
+ prop=>C::prop.orig
+ - Read:
+string(12) "C::prop.orig"
+string(12) "C::prop.orig"
+ - Write:
+string(8) "changed2"
+string(8) "changed2"
+ - Isset:
+bool(true)
+bool(true)
+ - Unset:
+
+Notice: Undefined index: prop in %s on line 39
+
+Notice: Undefined index: prop in %s on line 40
+
+Notice: Undefined index: prop in %s on line 40
+NULL
+NULL
+ - After:
+object(ArrayObject)#2 (1) {
+ ["storage":"ArrayObject":private]=>
+ object(C)#1 (0) {
+ }
+}
+object(C)#1 (0) {
+}
+
+--> Access prop on instance of MyArrayObject with ArrayObject::ARRAY_AS_PROPS:
+ - Iteration:
+ prop=>C::prop.orig
+ - Read:
+string(24) "MyArrayObject::prop.orig"
+string(12) "C::prop.orig"
+ - Write:
+string(8) "changed1"
+string(8) "changed2"
+ - Isset:
+bool(true)
+bool(true)
+ - Unset:
+
+Notice: Undefined index: prop in %s on line 40
+
+Notice: Undefined index: prop in %s on line 40
+NULL
+NULL
+ - After:
+object(MyArrayObject)#3 (1) {
+ ["storage":"ArrayObject":private]=>
+ object(C)#4 (0) {
+ }
+}
+object(C)#4 (0) {
+}