From 1e3aa55b1ebc8794474489cc41f5cd1ba7ed90c7 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 2 Oct 2004 14:22:52 +0000 Subject: [PATCH] - Add new test --- Zend/tests/bug28444.phpt | 74 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 Zend/tests/bug28444.phpt diff --git a/Zend/tests/bug28444.phpt b/Zend/tests/bug28444.phpt new file mode 100755 index 0000000000..f8a5513e0b --- /dev/null +++ b/Zend/tests/bug28444.phpt @@ -0,0 +1,74 @@ +--TEST-- +Bug #28444 (Cannot access undefined property for object with overloaded property access) +--FILE-- +x = $x; + } +} + +class Overloaded +{ + public $props = array(); + public $x; + + function __construct($x) + { + $this->x = new Object($x); + } + + function __get($prop) + { + echo __METHOD__ . "($prop)\n"; + return $this->props[$prop]; + } + + function __set($prop, $val) + { + echo __METHOD__ . "($prop,$val)\n"; + $this->props[$prop] = $val; + } +} +$y = new Overloaded(2); +var_dump($y->x); +var_dump($y->x->x); +var_dump($y->x->x = 3); +var_dump($y->y = 3); +var_dump($y->y); +var_dump($y->z = new Object(4)); +var_dump($y->z->x); +$t = $y->z; +var_dump($t->x = 5); +var_dump($y->z->x = 6); + +?> +===DONE=== +--EXPECTF-- +object(Object)#%d (1) { + ["x"]=> + int(2) +} +int(2) +int(3) +Overloaded::__set(y,3) +int(3) +Overloaded::__get(y) +int(3) +Overloaded::__set(z,Object id #3) +object(Object)#%d (1) { + ["x"]=> + int(4) +} +Overloaded::__get(z) +int(4) +Overloaded::__get(z) +int(5) +Overloaded::__get(z) +int(6) +===DONE=== -- 2.50.1