2011-12-18 86 views
1

要指示通过对函数的引用传递参数,应在括号中的参数之前使用什么字符?如何指示参数通过引用传递给函数

我在读一本书:

当您使用经过参考参数的函数,不前缀与符号的说法。 &字符仅用于函数定义。

那么使用什么字符?我只是完全困惑。

+4

&符号='&'。因此,'函数getsArgumentByRef(&$参数)'和调用像'getsArgumentByRef($ something)'(在呼叫站点没有&符号)。此外,[这一切都在文档中](http://www.php.net/manual/en/functions.arguments.php)。 – Jon 2011-12-18 23:02:59

+0

@jon - 你为什么不张贴这个答案?我会为你付上代价。 – 2011-12-18 23:04:50

+0

谢谢。我对这个问题很困惑。如果你让它成为答案,我会奖励它。 – 2011-12-18 23:06:26

回答

3

the documentation解释,定义一个函数取参数作为参考,你用&前缀每个这样的参数:

function getsArgumentByRef(&$argument) { /* ... */ } 

调用此功能,请使用的符号:

$result = getsArgumentByRef($input); 
+0

“*定义答案*”?花太多时间在SO上,是吧? ;-) – 2011-12-18 23:12:35

+0

@refp:lol - 修正,谢谢:) – Jon 2011-12-18 23:19:17

1

符号(&)在函数定义,就像使用:

function something(&$parameter){ ... } 

但没有什么是用在呼叫中:

$variable = 3; 
$other = something($variable); 
1

&符号时,作为乔恩评论中提及。

但是,在我看来,重要的一点就是“......功能定义”。

函数定义是完成函数任务的实际源代码,或者是接口函数具有的依赖关系。

这是一个函数的定义:

function doCoolStuff(array &$data) { 
    ... 
} 

这里的重要组成部分,是不是执行,但名称doCoolStuff和需要的array参数传递。

调用代码是当你真正使用该函数。

$data = ('favorite_site' => 'stackoverflow'); 
doCoolStuff($data); 

注意,在函数定义向上顶有参数名之前的符号,这表示该阵列被通过引用传递。对函数中的数组所做的更改会更改传递的数组。另外请注意,在调用代码中不需要使用&,函数定义会处理传递引用。

相关问题