Re: & performance issues
| From: | Robert Cummings | Date: | Thu, 17 Apr 2008 06:14:02 +0000 |
| Subject: | Re: & performance issues | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-273141@lists.php.net to get a copy of this message | ||
On Wed, 2008-04-16 at 23:37 -0400, Nathan Nobbe wrote:
> all,
>
> i have heard from various sources that using the & in php can at times be
> costly, and therefore, it should not be used when it is not needed. for
> example, passing an array by reference because you think youre passing the
> actual array is not a good idea. only pass it by reference if a modified
> version needs to be handed to the calling code via an actual parameter.
> im also wondering about php4 code thats now running under 5; such as
> function &returnObject() ...
> $a =& new SomeClass() ...
> lets suppose, for the sake of arguments, i have my hands on a codebase where
> everything actually does count. the code was php4 and is now transitioning
> to 5. does anybody know if there would be a performance gain in running the
> whole thing through sed to try and strip out the unnecessary & characters ?
> any empirical data?
If it's faster, it's faster so that would suggest a performance gain...
but as many will tell you, and you most likely already know... is the
gain worth the effort? BTW, rote replacement of references like that,
may not be a good idea. There are times when you really do want a
reference to an object... or maybe not... but you or someone else might
have done it anyways ;)
Contrast:
<?php
$b = new Foo();
$a = &$b;
$a = new Fee();
?>
Versus:
<?php
$b = new Foo();
$a = $b;
$a new Fee();
?>
In the first $b references the instance of Fee since $a is a reference.
In the second, $b remains an instance of Foo when $a becomes and
instance of Fee.
Cheers,
Rob.
--
http://www.interjinn.com
Application and Templating Framework for PHP