summaryrefslogtreecommitdiff
path: root/Zend/tests/objects_024.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/objects_024.phpt')
-rw-r--r--Zend/tests/objects_024.phpt53
1 files changed, 53 insertions, 0 deletions
diff --git a/Zend/tests/objects_024.phpt b/Zend/tests/objects_024.phpt
new file mode 100644
index 0000000..af3f879
--- /dev/null
+++ b/Zend/tests/objects_024.phpt
@@ -0,0 +1,53 @@
+--TEST--
+Testing direct assigning for property of object returned by function
+--FILE--
+<?php
+
+class foo {
+ static $bar = array();
+
+ public function __set($a, $b) {
+ self::$bar[] = $b;
+ }
+
+ public function __get($a) {
+ /* last */
+ return self::$bar[count(self::$bar)-1];
+ }
+}
+
+function test() {
+ return new foo;
+}
+
+$a = test()->bar = 1;
+var_dump($a, count(foo::$bar), test()->whatever);
+
+print "\n";
+
+$a = test()->bar = NULL;
+var_dump($a, count(foo::$bar), test()->whatever);
+
+print "\n";
+
+$a = test()->bar = test();
+var_dump($a, count(foo::$bar), test()->whatever);
+
+print "\n";
+
+?>
+--EXPECTF--
+int(1)
+int(1)
+int(1)
+
+NULL
+int(2)
+NULL
+
+object(foo)#%d (0) {
+}
+int(3)
+object(foo)#%d (0) {
+}
+