已弃用调用时传递引用

时间:2012-05-29 12:35:09

标签: php kohana

  

可能重复:
  Call-time pass-by-reference has been deprecated;

我的Kohana网站,在图书馆文件中获取此提醒。

Call-time pass-by-reference has been deprecated

多数问题:

call_user_func('Formo_'.$name.'::load', & $this);

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

删除&之前的$this

PHP5不需要添加 - 默认情况下,所有对象都作为对象标识符传递,不需要通过引用来模仿它,因为它是PHP 4所需的。

答案 1 :(得分:3)

要在php5中通过引用传递变量,您需要在函数声明中使用&。不是在你打电话给这个功能时。

function call_user_func($param1, &$param2) {
  // $param2 will be a reference
  // as mentioned by damianb though objects are by default references
  // http://php.net/manual/en/language.oop5.references.php

}

当调用它时,正常传递你的参数,param2将通过引用传递。

http://php.net/manual/en/language.references.pass.php

以上链接清楚地解释了错误。

  

注意:函数调用上没有引用符号 - 仅在函数上   定义。单独的函数定义足以正确传递   参考的论点。从PHP 5.3.0开始,您将收到警告   当你使用& amp;时,不推荐使用“call-time pass-by-reference”   在foo(& $ a);。