Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP new operator returning reference

Tags:

php

reference

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.)

like image 411
Preston Avatar asked Jul 16 '26 17:07

Preston


2 Answers

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.

like image 62
Peter Bailey Avatar answered Jul 18 '26 09:07

Peter Bailey


Thats PHP4 code. From the documentation: (now removed)

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

[1]: http://no.php.net/manual/en/language.oop.newref.php

like image 27
OIS Avatar answered Jul 18 '26 07:07

OIS