ID: 39426 Updated by: [EMAIL PROTECTED] Reported By: wmalota at php-art dot pl -Status: Open +Status: Bogus Bug Type: Scripting Engine problem Operating System: Linux/Debian PHP Version: 5.2.0 New Comment:
Turn on error reporting and you'll see: Notice: Indirect modification of overloaded property test::$data has no effect in /tmp/2.php on line 15 Notice: Indirect modification of overloaded property test::$data has no effect in /tmp/2.php on line 16 Notice: Indirect modification of overloaded property test::$data has no effect in /tmp/2.php on line 19 NULL Previous Comments: ------------------------------------------------------------------------ [2006-11-08 08:57:06] wmalota at php-art dot pl Description: ------------ Copying an array returned by __get to other array returned by __get from other object gives wrong effect. Reproduce code: --------------- class test { private $variables = array(); public function & __get($name) { return $this->variables[$name]; } public function __set($name, $value) { $this->variables[$name] = $value; } } $test1 = new test; $test1->data['sth1'] = 'sth1'; $test1->data['sth2'] = 'sth2'; $test2 = new test; $test2->data['rewritten'] = $test1->data; echo($test2->data['rewritten']['sth1']); Expected result: ---------------- I expected that on the screen I see this text: sth1 On PHP 5.1.x it works properly. Actual result: -------------- On the screen I see text: Array ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39426&edit=1