Re: references in arrays
| From: | Ron Korving | Date: | Thu, 15 Sep 2005 11:19:00 +0000 |
| Subject: | Re: references in arrays | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-18959@lists.php.net to get a copy of this message | ||
Perfect :)
I've been doing it wrong all the time, thinking I was improving performance.
It's good to know how things really work under the hood.
Thanks,
Ron
"Zeev Suraski" <zeev@zend.com> schreef in bericht
news:5.1.0.14.2.20050915141221.0605b540@localhost...
> At 13:35 15/09/2005, Ron Korving wrote:
> >Hi,
> >
> >For performance' sake, I have to know if this is true:
> >
> >Is it the case that when I do this:
> >
> ><?php
> > $array = array("one" => array(0,1,2), "two" => array(4,5,6));
> > $one = $array["one"];
> >?>
> >
> >That $one is not a copy, but a reference to $array["one"] and will only
> >become a copy when I alter the contents of $one?
>
> That's correct.
>
> >I know this is the case for
> >regular variables, but does this also go for contents of arrays? If not,
I
> >need to use the ampersand like I used to. But if it really is just a
> >reference, that would be good to know as I shouldn't be using the
ampersand
> >at all (mistakingly thinking it's a performance advantage when it's
actually
> >not).
>
> Generally, using & where it's not necessary is more often than not a
> performance disadvantage, and not an advantage. You should never use &
for
> better performance, only if you need it for applicative usage. The engine
> would do its best to do the least copying on its own.
>
> Zeev