RE: [PHP] Re: PHP5 and pass by reference bug.
| From: | Daevid Vincent | Date: | Sat, 17 Jul 2004 01:03:08 +0000 |
| Subject: | RE: [PHP] Re: PHP5 and pass by reference bug. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-190794@lists.php.net to get a copy of this message | ||
Yeah, I get what references are. The point is that when it was on the user
to decide, they could do it. Now that PHP5 makes you put the & in the
function declaration instead of the passing parameter, you don't know what
the user is going to send. Therefore it renders the & in the function
declaration a useless thing.
I could have this function
Function add (&$a, &$b)
{
return ($a + $b);
}
And as a user I could use it like so:
$x = 5;
$y = 10;
add($x, $y);
Or I could also use it like this:
add(5,10);
But since the function is now responsible in PHP5 to use the & [since
passing add(&$x, &$y); is now invalid], it makes my function add basically
useless.
> -----Original Message-----
> From: Red Wingate [mailto:redeye@erisx.de]
> Sent: Friday, July 16, 2004 5:35 PM
> To: php-general@lists.php.net
> Subject: [PHP] Re: PHP5 and pass by reference bug.
>
> Maybe you recheck the dokumentation on what exactly
> referenzes are. Do
> you expect the function to alter the string "something here"
> and every-
> time you later print the string within your script you get
> the altered one?
>
> ONLY variables can be passed by referenze !
>
> -- red
>
> Daevid Vincent wrote:
> > So, I'm getting all these errors/warnings in PHP5 now
> saying that I have to
> > put the & on the function and not in the passing (which
> sorta makes sense
> > and puts the burden on the function rather than the user,
> which I like too).
> > So I spend the time to go and fix several thousand lines of code.
> >
> > Then I start to see these other errors...
> >
> > Maybe I'm missing something, but this seems like a glaring
> bug in passing by
> > reference that nobody caught...
> >
> > say you have
> >
> > function foo(&$bar)
> > {
> > }
> >
> > well that works great as long as you use it like
> >
> > foo($x);
> >
> > but if you try
> >
> > foo("something here");
> > Or
> > foo( array('a','b','c') );
> >
> > it shits the bed. :-(
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>