ID: 25124 Updated by: [EMAIL PROTECTED] Reported By: ian at ardes dot com -Status: Verified +Status: Bogus Bug Type: Class/Object related Operating System: * PHP Version: 4CVS-2004-02-11 New Comment:
Expected behaviour -> bogus. Previous Comments: ------------------------------------------------------------------------ [2004-02-17 15:52:56] [EMAIL PROTECTED] Overloading of array indexes is not supported. This is expected behavior. ------------------------------------------------------------------------ [2003-08-18 02:34:02] ian at ardes dot com Description: ------------ Summary: When a class is overloaded with overload(), array member variables go wrong. If you overload a class, then access to declared array member variables from within member functions (and anywhere else I think) stops working correctly. The very simple class in the code should not change it's behaviour at all once it is overloaded. But it does. Reproduce code: --------------- class Overloaded { var $_my_array = array(); function Overloaded() { $this->_my_array[1] = '1st element'; } function __get($nm, &$val) { return false; } function __set($nm, $val) { return false; } } $o1 = new Overloaded(); print ("before overload(): "); print_r($o1); overload('Overloaded'); $o2 = new Overloaded(); print ("after overload(): "); print_r($o2); Expected result: ---------------- before overload(): overloaded Object ( [_my_array] => Array ( [1] => 1st element ) ) after overload(): overloaded Object ( [_my_array] => Array ( [1] => 1st element ) ) Actual result: -------------- before overload(): overloaded Object ( [_my_array] => Array ( [1] => 1st element ) ) after overload(): overloaded Object ( [_my_array] => 1st element ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25124&edit=1