“不推荐使用引用分配new的返回值”错误

时间:2010-05-18 19:37:16

标签: php

问题是:

  

不推荐使用:在第155行的C:\ wamp \ www \ FlashChat_v607 \ chat \ inc \ common.php中弃用了按引用分配new的返回值

     

注意:未定义的变量:第94行的C:\ wamp \ www \ FlashChat_v607 \ chat \ inc \ common.php中的步骤

这是您可以找到代码的链接: http://www5.zippyshare.com/v/3592861/file.html

3 个答案:

答案 0 :(得分:6)

这一行:

$GLOBALS['fc_config']['bot'] =& new Bot();

应该是这样的:

$GLOBALS['fc_config']['bot'] = new Bot();

第94行的通知:

if ( $step > 2 || !isset($step) )

你可能会忽略。您正在检查$ step的值,但您从未定义该变量。但是,既然你也明确检查它isset我猜你应该没问题。最好先检查一下isset

无论如何,这些都是小问题。听起来真正的问题可能是您在生产服务器上启用了E_NOTICE,E_DEPRECATED和错误显示,这会弄乱您的页面显示错误消息。

尝试更改error display options in your php.ini,以便不显示这些内容(尽管您可能希望将它们留在开发框中)

答案 1 :(得分:2)

“通过引用分配新的返回值”是因为这个成语在你的代码中

$foo = &new Bar;

将其更改为

$foo = new Bar;

要了解PHP4中使用此成语的原因,请参阅this manual page

答案 2 :(得分:1)

第94行的通知是因为......

if ( $step > 2 || !isset($step) )

应该是:

if (!isset($step) || $step > 2 )

这是因为您始终要检查变量是否存在FIRST,然后检查任何其他值。如果未设置$ step,您将收到您收到的NOTCIE。