From:             [EMAIL PROTECTED]
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] [EMAIL PROTECTED]
$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



-- 
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]

Reply via email to