Reply to Re: assigned values in 'ByRef' call

Your name:

Reply:


Posted by Csaba Gabor on 11/06/07 20:15

On Nov 6, 9:09 pm, Darko <darko.maksimo...@gmail.com> wrote:
> On Nov 6, 9:06 pm, ZeldorBlat <zeldorb...@gmail.com> wrote:
>
> > On Nov 6, 2:27 pm, Csaba Gabor <dans...@gmail.com> wrote:
>
> > > In the following PHP code, the final printed line shows 'frob:
> > > something'. Why is it not 'frob: else'? After all, if I replace the
> > > first line with $frob = "something"; test ($frob); then the final
> > > printed line does show 'frob: else'
>
> > > Csaba Gabor from Vienna
> > > PHP 5.2.4 on WinXP Pro
>
> > > test ($frob = "something");
> > > print "frob: $frob <br>\n";
>
> > > function test(&$val) {
> > > print "val pre: $val <br>\n";
> > > $val = "else";
> > > print "val post: $val <br>\n"; }
>
> > It's because you're not really passing a variable -- you're passing
> > the result of an expression. If you enable E_STRICT you'll get the
> > following:
>
> > Strict Standards: Only variables should be passed by reference
>
> > Since you haven't passed a variable, modifying the value inside the
> > function is only modifying the local value.
>
> Yes, I've thought about it and was just coming back to brag about the
> conclusion, but you were faster. In C++, this is not the behavior, but
> the assignment operator returns the reference to the left parameter
> instead, making it possible. In PHP, however, only the value (copy of
> the value, if you like) is returned from the assignment operator,
> which passes that as the argument, not the $frob variable.

Thanks to both of you for a very nice explanation,
Csaba Gabor from Vienna

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация