PHP中的“&”是什么意思?

考虑这个PHP代码:

call_user_func(array(&$this, 'method_name'), $args);

我知道这意味着在定义函数时传递引用,但是在调用函数时呢?


从传递参考文档页面:

您可以通过引用函数来传递变量,以便函数可以修改该变量。 语法如下:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a is 6 here
?>

...在最近的PHP版本中,当您在foo(&$ a)中使用&时,您会收到一条警告,指出“通过引用传递时间”已被弃用。


这是一个传递参考。


call_user_func(array(&$this, 'method_name'), $args);

此代码生成注意:注意:未定义变量:this

这是一个正确的例子:

<?php
 error_reporting(E_ALL);
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."n";

// You can use this instead
call_user_func_array('increment', array(&$a));
echo $a."n";
?>
The above example will output:

0
1
链接地址: http://www.djcxy.com/p/1693.html

上一篇: What does "&" mean here in PHP?

下一篇: Difference between & and && in PHP