要指示通过对函数的引用传递参数,应在括号中的参数之前使用什么字符?如何指示参数通过引用传递给函数
我在读一本书:
当您使用经过参考参数的函数,不前缀与符号的说法。 &字符仅用于函数定义。
那么使用什么字符?我只是完全困惑。
要指示通过对函数的引用传递参数,应在括号中的参数之前使用什么字符?如何指示参数通过引用传递给函数
我在读一本书:
当您使用经过参考参数的函数,不前缀与符号的说法。 &字符仅用于函数定义。
那么使用什么字符?我只是完全困惑。
如the documentation解释,定义一个函数取参数作为参考,你用&
前缀每个这样的参数:
function getsArgumentByRef(&$argument) { /* ... */ }
当调用此功能,请不使用的符号:
$result = getsArgumentByRef($input);
“*定义答案*”?花太多时间在SO上,是吧? ;-) – 2011-12-18 23:12:35
@refp:lol - 修正,谢谢:) – Jon 2011-12-18 23:19:17
符号(&)在函数定义,就像使用:
function something(&$parameter){ ... }
但没有什么是用在呼叫中:
$variable = 3;
$other = something($variable);
的&
符号时,作为乔恩评论中提及。
但是,在我看来,重要的一点就是“......功能定义”。
函数定义是完成函数任务的实际源代码,或者是接口函数具有的依赖关系。
这是一个函数的定义:
function doCoolStuff(array &$data) {
...
}
这里的重要组成部分,是不是执行,但名称doCoolStuff
和需要的array
参数传递。
调用代码是当你真正使用该函数。
$data = ('favorite_site' => 'stackoverflow');
doCoolStuff($data);
注意,在函数定义向上顶有参数名之前的符号,这表示该阵列被通过引用传递。对函数中的数组所做的更改会更改传递的数组。另外请注意,在调用代码中不需要使用&
,函数定义会处理传递引用。
&符号='&'。因此,'函数getsArgumentByRef(&$参数)'和调用像'getsArgumentByRef($ something)'(在呼叫站点没有&符号)。此外,[这一切都在文档中](http://www.php.net/manual/en/functions.arguments.php)。 – Jon 2011-12-18 23:02:59
@jon - 你为什么不张贴这个答案?我会为你付上代价。 – 2011-12-18 23:04:50
谢谢。我对这个问题很困惑。如果你让它成为答案,我会奖励它。 – 2011-12-18 23:06:26