要通过引用函数传递参数,我应该在括号中的参数之前使用什么字符??
我正在读一本书:
当您使用通过引用传递参数的函数时,请不要在参数前面加上&符号。 &符只在函数定义中使用。
那么使用什么角色?我完全对此感到困惑。
答案 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。