Cliff Hirsch wrote:
The php manual says:
“In recent versions of PHP you will get a warning saying that
"Call-time pass-by-reference" is deprecated when you use a & in foo(&$a);”
Why is this? Besides being ugly, difficult to understand and not very
elegant, is there any reason technical reason why this is deprecated?
Because if you declare it in the function:
function foo(&$mya) {
}
Than you have told PHP that whenever this function is used, variables
should be passed by reference and not copied.
So the thinking is, you should know ahead of time whether or not you
want to pass by reference or pass a copy, and not decide to do it at the
time you call your code.
IE, don't do:
foo(&$a);
echo $a;
foo($b);
echo $b;
Where $a is changed by foo and $b is not.
If you must have function that does one thing or the other, create 2
function:
function foo(&$a) {
}
function foosafe($a) {
foo($a);
}
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php