ID: 30413
User updated by: info at pandora-web dot de
Reported By: info at pandora-web dot de
Status: Open
-Bug Type: Zend Engine 2 problem
+Bug Type: Class/Object related
Operating System: Linux 2.6
PHP Version: 5.0.2
New Comment:
see bug #28444
This is just another test case.
Please correct this odd behavior.
Thanx
Previous Comments:
------------------------------------------------------------------------
[2004-10-12 19:14:00] info at pandora-web dot de
Description:
------------
When using overloaded Objects in Overloaded Object, then the __set
method of the first object is called instead of the last Object in
chain.
Reproduce code:
---------------
class TestClass {
private $_p = array();
public function __get($propName){
return $this->_p[$propName];
}
public function __set($propName, $propValue){
$this->_p[$propName] = $value;
}
}
$a = new TestClass();
$a->TestVar = 'test';
print $a->testVar; //--> 'test'
$a->testVar = new TestClass();
$a->testVar->testVar = 'test2'; // __set of $a->testVar called instead
of getter of $a->testVar and setter of $a->testVar->testVar
Expected result:
----------------
I think I is better to call the __get method of the first objects and
than the __set method of the last one in chain.
Actual result:
--------------
<br />
<b>Fatal error</b>: Cannot access undefined property for object with
overloaded property access in <b>xxxx</b> on line <b>xxxx</b><br />
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30413&edit=1