#31884 [Opn->WFx]: setting reference to $this in class method

From: Date: Tue, 08 Feb 2005 15:17:50 +0000
Subject: #31884 [Opn->WFx]: setting reference to $this in class method
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-73655@lists.php.net to get a copy of this message
ID: 31884 Updated by: pollita@php.net Reported By: camka at email dot ee -Status: Open +Status: Wont fix Bug Type: Zend Engine 2 problem Operating System: Linux PHP Version: 5.0.3 New Comment: $this is a special variable and is processed differently than other variables. Creating references to it simply won't work the way you're expecting it to. Previous Comments: ------------------------------------------------------------------------ [2005-02-08 14:47:13] camka at email dot ee Description: ------------ When setting reference to $this object, using "=&" operator in a class method doesn't seem to work as expected (or my understanding is completely wrong). When unsetting object outside of the class methods - link breaks and won't unset the referenced objects. Reproduce code: --------------- <?php class uu { public $ref; public function set_me_as_ref(uu &$whom) { $whom->ref = &$this; } } $obj1 = new uu(); $obj2 = new uu(); $obj2->set_me_as_ref($obj1); $obj2 = null; // this won't unset $obj1->ref, but unsets only $obj2 object // $obj1->ref = null; // this won't unset the $obj2 object, but unsets only $obj1->ref echo '<pre>'; var_dump($obj1, $obj2); ?> Expected result: ---------------- $obj1->ref is supposed to be null $obje2 - is supposed to be null Actual result: -------------- $obj1->ref => living object $obj2 => null ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31884&edit=1

« previous php.bugs (#73655) next »