|
Posted by howa on 06/04/07 13:31
On Jun 3, 6:42 pm, gosha bine <stereof...@gmail.com> wrote:
> howa wrote:
> > On 6 3 , 6 42 , gosha bine <stereof...@gmail.com> wrote:
> >> howa wrote:
> >> $foo = new Foo
>
> >> does the following in php4:
>
> >> 1) a chunk of memory is allocated and object's constructor is called to
> >> initialize this memory
> >> 2) another chunk of memory is allocated and everything from the first
> >> chunk is copied to it
> >> 3) variable 'foo' is being set to address of this second chunk
> >> 4) the first chunk is being disposed.
>
> >> Apart from being ineffective, this technique will apparently fail if an
> >> object saves reference to itself ($this) in constructor or when you need
> >> exactly one instance.
>
> > Hello,
>
> > Yes, but refer to my original question, both (1) & (2) have this
> > problem of inefficieny.
>
> > So you said (2) is perfferred?
>
> > Why? Since PHP said return by reference is mostly useless.
>
> function getFoo()...
> $foo = Foo::getFoo();
>
> involves copying as I said above
>
> function &getFoo()..
> $foo =& Foo::getFoo();
>
> does not involve copying, only one memory block is created
>
Good, back to the real problem!
:)
but according to PHP, the opimizer is smart to handle this?
>>Do not use return-by-reference to increase performance, the engine is smart enough to optimize this on its own
http://hk.php.net/manual/en/language.references.return.php
any comments?
thanks.
Navigation:
[Reply to this message]
|