不推荐使用通过引用分配 new 的返回值

2022-08-30 09:19:02

我刚刚遇到错误。

当我尝试像这样分配对象时:

$obj_md = new MDB2();

我得到的错误是“不推荐使用通过引用分配new的返回值”。实际上,我一直在寻找解决方案,但我唯一见过的解决方案就是拒绝php.ini(error_reporting)的政治性。我也尝试过,但它不起作用。

太令人困惑了。我希望你能帮助我。提前致谢。


答案 1

在 PHP5 中,此习语已弃用

$obj_md =& new MDB2();

您确定在示例代码中没有遗漏与号吗?这将生成您声明的警告,但这不是必需的,可以将其删除。

要了解为什么在 PHP4 中使用这个成语,请参阅此手册页面(请注意,PHP4 早已失效,此链接指向相关页面的存档版本)


答案 2

我最近将一个使用 SimplePie (http://simplepie.org/) 的站点从使用 PHP 5.2.17 的服务器移动到使用 PHP 5.3.2 的服务器。正是在这次移动之后,我开始收到一系列错误消息,例如:

已弃用:通过引用分配 new 的返回值在第 738 行的 .../php/simplepie.inc 中已弃用

在回顾了这个问题的几个讨论之后,我通过将 simplepie.inc 文件中 =& new 的所有实例替换为 = new 来清理问题。

我没有足够的经验来知道这是否适用于所有收到这些错误消息的情况,但它在这种特殊情况下有效,可能值得尝试。


推荐