|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-03-08 08:50 UTC] stas@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Nov 06 15:00:02 2025 UTC |
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.