我刚收到一个错误.
当我尝试分配这样的对象时:
$obj_md = new MDB2();
Run Code Online (Sandbox Code Playgroud)
我得到的错误是"不推荐使用引用分配新值的返回值".实际上我一直在寻找一个解决方案,但我见过的唯一一个就是拒绝php.ini(error_reporting)的政治.我也尝试过,但它没有用.
这太令人困惑了......我希望你能帮助我.提前致谢.
Pau*_*xon 96
在PHP5中,这个成语已被弃用
$obj_md =& new MDB2();
Run Code Online (Sandbox Code Playgroud)
您确定在示例代码中没有错过&符号吗?这会生成您所声明的警告,但它不是必需的,可以删除.
要了解为什么在PHP4中使用这个习惯用法,请参阅本手册页(请注意PHP4已经过时了,此链接指向相关页面的存档版本)
Joh*_*ord 28
我最近使用SimplePie(http://simplepie.org/)将一个站点从使用PHP 5.2.17的服务器移动到使用PHP 5.3.2 的站点.在这一举动之后,我开始收到一个错误消息列表,例如:
不推荐使用:在第738行的.../php/simplepie.inc中弃用了按引用分配new的返回值
在回顾了几个关于这个问题的讨论之后,我通过在simplepie.inc文件中替换=&new with = new的所有实例来解决问题.
我没有足够的经验知道这是否适用于收到这些错误消息的所有情况,但它在这种特殊情况下起作用,可能值得尝试.
Nitin是正确的 - 问题实际上在MDB2代码中.
根据PHP的Replacement for PEAR:MDB2,您可以更新到MDB2的SVN版本,以获得与PHP5.3兼容的版本.
由于答案是在2010年3月给出的,并且http://pear.php.net/package/MDB2/在几个月后发布了一个版本,我预计当前版本的MDB2也将解决这个问题.
&在PHP中用于将对象传递给方法/通过引用将新对象分配给变量.它在PHP 5中已弃用,因为PHP 5默认情况下通过引用传递所有变量.
我有同样的问题.我已经有了'&',但它仍然给出了相同的警告.我正在使用带有WAMP的PHP 5.3,我所做的只是删除'和'符号,警告消失了.
$obj= new stdClass(); //Without '&' sign.
Run Code Online (Sandbox Code Playgroud)