diff options
Diffstat (limited to 'Zend/tests/objects_024.phpt')
-rw-r--r-- | Zend/tests/objects_024.phpt | 53 |
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) { +} + |