ID: 11909 Updated by: brianlmoon Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Bogus Bug Type: Scripting Engine problem Operating system: PHP Version: 4.0.6 Assigned To: Comments: This is expected behavior. You are assuming that the object you had in $obj2 should be gone when you copy $obj to that var. That is not the case. It only changes what $obj2 points to. Take this case: $var=3; $var2=&$var; unset($var); echo $var2; $var2 is still 3. The reference is gone but not the value of the var. That is what makes references nice. Brian. Previous Comments: --------------------------------------------------------------------------- [2001-07-05 10:54:01] [EMAIL PROTECTED] When objects that contain objects that are referenced elsewhere, they are not correctly dereferenced, and strange side effects result class Foo{ var $a; function Foo($value) { $this->set($value); } function set($value) { $this->a = $value; } function get() { return $this->a; } } class Bar{ var $a; function Bar($value) { $this->a = new Foo($value); } function set($value) { $this->a->set($value); } function get() { return $this->a->get(); } function share($other) { $this->a = & $other->a; } } //Objects are initialized $obj = new Bar(1); $obj2 = new Bar(2); //$obj and $obj2 both contain an internal reference to the //same Foo object, with a value of 2 $obj->share($obj2); //$obj2 now references a new Bar object with a new //Foo object containing a value of 3 $obj2 = new Bar(3); //$obj2 should be a copy of $obj1 and contain a new //Foo object with a value of 2 $obj2 = $obj; //Somehow, this also changes the value in $obj2 $obj->set(4); //In a sane world, this outputs 2 //In reality, we get a 4 echo $obj2->get(); --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=11909&edit=2 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]