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

Reply via email to