Bug #14626: calling a method "magically" turns the object into a reference to itself
| From: | ivan dot lamouret at novitek dot fr | Date: | Thu, 20 Dec 2001 16:27:53 +0000 |
| Subject: | Bug #14626: calling a method "magically" turns the object into a reference to itself | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-74601@lists.php.net to get a copy of this message | ||
From: ivan.lamouret@novitek.fr
Operating system: linux Suse
PHP version: 4.1.0
PHP Bug Type: Class/Object related
Bug description: calling a method "magically" turns the object into a reference to itself
Calling an object's method turn the object into a reference to itself. When
the object is itself an array's value (or an object's instance variable)
this shows up when copying (with simple assignement) the surrounding array
(or object).
class bar{
var $my_var = 'bar';
function buggy(){/*nothing needed here*/}
}
$foo[0] = new bar();
$foo[0]->buggy(); // turns the array's value into a reference to the
object
$new = $foo;
$new[0]->my_var = 'new';
echo $foo[0]->my_var;// echoes 'new' !!
Comment out the call to buggy(), or use var_dump before and after this call
to see the magic transformation of $foo[0] from object(bar) to
&object(bar).
Tested with 4.0.3 and 4.1.
The same bug has been reported under #11543 (open but unanswered). The code
above is much simpler than that in the original bug report. (I could not
edit that one :))
best regards
Ivan
--
Edit bug report at: http://bugs.php.net/?id=14626&edit=1