On Wed, 2004-05-12 at 12:41, Jordi Canals wrote:
> Hi all,
> 
> It is not a big issue, but that is something that I never had clear. 
> I've been looking at the manual and found no answer, so I will ask with 
> an example:
> 
> When instantiating an object, I could do it in two different ways:
> 
> A)    $object = new MyClass;
> B)    $object =& new MyClass;
> 
> I cannot understand the exect difference betwen the two methods. Because 
> there is not yet an object, the second example does not return a 
> reference to an existing object.
> 
> I think perhaps the diference is:
> 
> 1) In case A, PHP creates a new object and returns a Copy of this new 
> object, so really I will have the object two instances for the object in 
> memory ...
Only until the garbage collection cleans up the "first" instance. So you
_always_ create one instance for the garbage collector only.
> 
> 2) In case B, PHP creates a noew object and returns a reference to this 
> newly created object. In this case there is only one instance of the object.
> 
> Does it works that way? If not, What is exactly the difference?
It is as you say. The problem is normally negligible, but makes a big
difference if there is alot done in the constructor of the object (e.g.
scanning a huge file for certain strings). Then this will slow things
down. This however is solved in PHP5.
> 
> TIA,
> Jordi.
Cheerio
/rudy

Attachment: signature.asc
Description: This is a digitally signed message part



Reply via email to