如何通过引用该函数来传递参数

时间:2011-12-18 23:01:53

标签: php zend-framework

要通过引用函数传递参数,我应该在括号中的参数之前使用什么字符??

我正在读一本书:

  

当您使用通过引用传递参数的函数时,请不要在参数前面加上&符号。 &符只在函数定义中使用。

那么使用什么角色?我完全对此感到困惑。

3 个答案:

答案 0 :(得分:3)

the documentation中所述,要定义一个按引用引用参数的函数,每个这样的参数前缀为&

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

调用该函数时,使用&符号:

$result = getsArgumentByRef($input);

答案 1 :(得分:1)

&符号(&)用于函数定义,如:

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

但是电话中没有使用任何内容:

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

答案 2 :(得分:1)

正如Jon在评论中提到的那样使用&&符号。

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

函数定义是完成函数任务的实际源代码,或者在接口的情况下是函数的依赖项。

这是一个函数定义:

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

此处的重要部分不是实现,而是名称doCoolStuff以及需要传递array参数。

当您实际使用该功能时,调用代码。

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

注意,在函数定义中,参数名称前面有一个&符号,这表示数组是通过引用传递的。对函数中的数组所做的更改会更改传递的数组。另请注意,不需要在调用代码中使用&,函数定义会处理pass-by-reference。