Re: strange reference behavior
| From: | Robert Cummings | Date: | Sat, 01 Sep 2007 13:59:39 +0000 |
| Subject: | Re: strange reference behavior | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-261592@lists.php.net to get a copy of this message | ||
On Sat, 2007-09-01 at 11:39 +0100, Martin Ellingham wrote:
> Robert Enyedi wrote:
> > Hi,
> >
> > I've been studying the PHP reference mechanism (with PHP 5.2.1) and
> > I'm unsure if the following behavior is normal.
> >
> > This code works as expected:
> >
> > $a = 2;
> > $b = &$a;
> > //$c = &$a;
> > $c = $b;
> > $a = 1;
> >
> > echo $c."\n"; // Prints "2" as expected
> >
> > but this one does not:
> >
> > $a = 2;
> > $b = &$a;
> > $c = &$a;
> > $c = $b; // Should overwrite the previous assignment, so $c
> > // should get a copy of $b (and NOT a reference)
> > $a = 1;
> >
> > echo $c."\n"; // I would expect "2", but prints "1"
> >
> > Could anyone please clarify why this happens?
> >
> > Regards,
> > Robert
> >
> This is because PHP5 has changed the default behaviour and $a = $b is
> now call by reference as standard.
In the above example no objects have been used. As such, nothing has
changed in the above semantics that do not exist in PHP4.
Cheers,
Rob.
--
...........................................................
SwarmBuy.com - http://www.swarmbuy.com
Leveraging the buying power of the masses!
...........................................................