PHP 4.0 Bug #9620: new operator does not behave correctly

From: Date: Thu, 08 Mar 2001 13:27:45 +0000
Subject: PHP 4.0 Bug #9620: new operator does not behave correctly
Groups: php.dev 
Request: Send a blank email to php-dev+get-48247@lists.php.net to get a copy of this message
From: passionplay@hotmail.com Operating system: Linux-Mandrake PHP version: 4.0.4pl1 PHP Bug Type: Scripting Engine problem Bug description: new operator does not behave correctly I submitted this bug previous and was told that this is how the new operator is supposed to work. I submit to you that in every other instance this makes sense, but for self referencing constructs, especially with the new operator, the fact that =new is not interpreted as =&new does not make sense whatsoever because why would I want to assign a copy of the object I just created, especially if that object opens files? Is there EVER a situation where I want to assign ANYTHING other than the object I just created??? Thank you. --------- Response follows ------------------ Yes, when you do a $obj = new Foo(), the object is copied. Use =& if you want reference. Previous Comments: --------------------------------------------------------------------------- [2001-02-27 09:16:56] passionplay@hotmail.com $objectlist=array(); class MyClass { function MyClass() { global $objectlist; // Save the reference for later use $objectList[]=&$this; } }; // the object referred to by $myobject is NOT in the array $myobject = new MyClass(); // $myobject2 exists in the array $myobject2 =& new MyClass(); It appears that there is an object being copied when returning from the constructor. What am I doing wrong? I'm not supposed to return anything from the constuctor. -- Edit Bug report at: http://bugs.php.net/?id=9620&edit=1

« previous php.dev (#48247) next »