注册引用新的返回值被弃用注册引用新的返回值被弃用(Assigning the return valu

2019-05-17 00:07发布

我刚刚得到一个错误。

当我尝试分配对象是这样的:

$obj_md = new MDB2();

我得到的是错误的“分配参照新的返回值已弃用”。 其实我一直在寻找一个解决方案,但我见过的唯一一个只是拒绝php.ini文件(使用error_reporting)的politicy。 我已经尝试过了,但是没有奏效。

它是如此confusing..I希望你能帮助我。 提前致谢。

Answer 1:

在PHP5这个成语已过时

$obj_md =& new MDB2();

你确定你没有错过你的示例代码的符号? 这将产生你的状态的警告,但它不是必需的,可以拆卸。

为了说明为什么这成语在PHP4中使用,请参阅本手册页面 (注意,PHP4是死多头,这是链接到相关页面的存档版本)



Answer 2:

我最近搬到使用了SimplePie(网站http://simplepie.org/ )从使用PHP 5.2.17到一个正在使用PHP 5.3.2的服务器。 正是在此之后的举动,我开始收到错误消息的列表,像这样的:

推荐使用:通过指定参考的新的返回值在... / PHP / simplepie.inc已被弃用上线738

审查这个问题的几次讨论后,我茅塞顿开通过替换的所有实例=新与在simplepie.inc文件=新

我没有足够的经验知道这是否会工作,在收到这些错误信息所有实例,但在这种特殊情况下工作,它可能是值得一试。



Answer 3:

也许MDB2的构造具有使用一个$变量一些代码=&新类名();



Answer 4:

尼廷是正确的 - 这个问题实际上是在MDB2代码。

根据置换梨:在PHP 5.3 MDB2你可以更新到SVN版本MDB2的一个版本,这是PHP5.3兼容。

作为这个问题的答案是在2010年3月给出, http://pear.php.net/package/MDB2/几个月后显示了一个版本,我希望MDB2的当前版本将解决这个问题也。



Answer 5:

&在PHP用于将物体传递给方法/通过引用分配一个新对象的一个​​变量。 因为PHP 5默认按引用传递所有变量它是在PHP 5弃用。



Answer 6:

我有同样的问题。 我已经有“&”,但它依然给予同样的警告。 我使用PHP 5.3 WAMP和我所做的就是删除“&”符号和警告不见了。

$obj= new stdClass();  //Without '&' sign.


Answer 7:

只是删除new$obj_md =& new MDB2();



Answer 8:

它的发生是因为PHP 5.3,附带在WAMP 2.0i包,而不是的Joomla。

你有两个选择来解决它,

要么使用WAMP小时(以前的版本)或下载PHP 5.2.9-2从WAMP的网站插件。



Answer 9:

从控制台升级您的梨/ MDB2:

# pear upgrade MDB2-beta
# pear upgrade MDB2_Driver_Mysql-beta

问题解决在2.5.0b3版本



Answer 10:

C:\wamp\www\..\libraries\pattemplate

1.ini_set('display_errors', 0);

$this->_modules[$moduleType][$sig]  =&new $moduleClass;   wrong

$this->_modules[$moduleType][$sig]  =new $moduleClass;   Right


文章来源: Assigning the return value of new by reference is deprecated
标签: php php-5.2