什么是“&”在PHP中意味着什么?

时间:2009-06-17 12:21:51

标签: php

考虑这个PHP代码:

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

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

3 个答案:

答案 0 :(得分:14)

来自Passing By Reference文档页面:

  

您可以通过引用传递变量   一个功能所以功能可以   修改变量。语法如下   如下:

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

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

...在PHP的最新版本中,您将会这样做   得到一个警告说“通话时间   “按引用传递”在以下情况下已弃用   你用&amp;在foo(&amp; $ a);

答案 1 :(得分:-1)

这是一个传递参考。

答案 2 :(得分:-2)

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

此代码生成通知: 注意:未定义的变量:这个

这是一个正确的例子:

<?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