【发布时间】:2012-06-03 16:24:09
【问题描述】:
我的 Kohana 网站,在库文件中获取此警报。
Call-time pass-by-reference has been deprecated
那是问题行:
call_user_func('Formo_'.$name.'::load', & $this);
我该如何解决这个问题?
【问题讨论】:
我的 Kohana 网站,在库文件中获取此警报。
Call-time pass-by-reference has been deprecated
那是问题行:
call_user_func('Formo_'.$name.'::load', & $this);
我该如何解决这个问题?
【问题讨论】:
删除$this之前的&。
PHP5 不需要添加 - 默认情况下,所有对象都作为对象标识符传递,无需像 PHP 4 那样通过引用传递来模仿这一点。
【讨论】:
要在 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);.
【讨论】: