#32334 [Fbk->Opn]: __set acts unexpected with variable variables

From: Date: Sat, 19 Mar 2005 06:44:08 +0000
Subject: #32334 [Fbk->Opn]: __set acts unexpected with variable variables
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-75508@lists.php.net to get a copy of this message
ID: 32334 User updated by: mk at peytz dot dk Reported By: mk at peytz dot dk -Status: Feedback +Status: Open Bug Type: Zend Engine 2 problem Operating System: Linux -PHP Version: 5.0.3 +PHP Version: 5CVS-200503190530 New Comment: But the problem persist with the CVS snapshot (which now compiles again). Previous Comments: ------------------------------------------------------------------------ [2005-03-18 19:23:13] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2005-03-16 13:29:45] mk at peytz dot dk Description: ------------ When setting variable variable values on a instance of a class with an overloading __set function changing another instance variable goes wrong. (I'm reporting it for version 5.0.3 because the current cvs snapshot would not compile.) Reproduce code: --------------- http://dev.peytz.dk/~mk/setter.php <?php class Setter { private $_fields = array(); // the data fields private $_changedFields = array(); // list of changed fields function __set($name, $value) { // set value $this->_fields[$name] = $value; // add to list of changed fields $this->_changedFields[] = $name; } } $foo = new Setter; $foo->a = 1; $var = "b"; $foo->$var = 2; var_export($foo); ?> Expected result: ---------------- class Setter { private $_fields = array ( 'a' => 1, 'b' => 2, ); private $_changedFields = array ( 0 => 'a', 1 => 'b', ); } Actual result: -------------- class Setter { private $_fields = array ( 'a' => 1, 'b' => 2, ); private $_changedFields = array ( 0 => 'a', 1 => '›‡ˆ', ); } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32334&edit=1

« previous php.bugs (#75508) next »