tags:

views:

548

answers:

3

I'm working with some old PHP code that has a lot of the following:

$someVar =& new SomeClass();

Did the new operator ever return a value, um, not by reference? (That feels strange to type. I feel like I'm losing my mind.)

+3  A: 

Thats PHP4 code. From the documentation:

"new" does not return a reference by default, instead it returns a copy.

OIS
I got a -1 for this correct answer?
OIS
+4  A: 

It was one of those sort of optimization techniques taught in a lot of older books on OOP in PHP 4.

Basically, the initial object created in memory is one the application can't access unless you return the instance by reference. Otherwise you get a copy of the object - the only catch is that the original exists without a symbol. Kinda dumb.

But ya, object creating and passing and references in PHP 4 is a monumental mess.

Peter Bailey
A: 

See also my answer here which includes a simple code sample to illustrate the issue.

Paul Dixon