4

可能重复:
调用时传递引用已被弃用;

我的 Kohana 站点,在库文件中获取此警报。

Call-time pass-by-reference has been deprecated

那是问题线:

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

我该如何解决这个问题?

4

2 回答 2

7

删除&之前的$this.

PHP5 不需要添加 - 默认情况下,所有对象都作为对象标识符传递,不需要像 PHP 4 那样通过引用传递来模仿这一点。

于 2012-05-29T12:36:36.293 回答
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 开始,当您在 foo(&$a); 中使用 & 时,您将收到一条警告说“调用时传递引用”已被弃用。

于 2012-05-29T12:40:33.820 回答