【问题标题】:Call-time pass-by-reference has been deprecated [duplicate]调用时传递引用已被弃用[重复]
【发布时间】:2012-06-03 16:24:09
【问题描述】:

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

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

Call-time pass-by-reference has been deprecated

那是问题行:

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

我该如何解决这个问题?

【问题讨论】:

    标签: php kohana


    【解决方案1】:

    删除$this之前的&

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

    【讨论】:

    • @hakre 编辑得很好,谢谢
    【解决方案2】:

    要在 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);.

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 2013-03-23
      • 2011-06-07
      • 1970-01-01
      • 2012-11-13
      • 2017-01-29
      • 2010-11-06
      • 2013-11-17
      相关资源
      最近更新 更多