我想将代码从
PHP 5.2迁移到5.4.除了我使用的所有代码广泛使用只使用一个对象与成员没有任何初始化,如下所示:
$MyObject->MyMember = "Hello";
这将导致警告:“从空值创建默认对象”
我知道解决方案是使用:
$MyObject = new stdClass(); $MyObject->MyMember = "Hello";
但是,在我的所有代码中,这将是一个很大的变化,因为我在不同的项目中使用了这么多次.我知道,这不是很好的风格,但不幸的是,我不能在下个星期将这一切加入到我的所有代码中.
我知道我可以将PHP error_reporting设置为不报告警告,但是我仍然可以得到其他警告和通知.完全启用或禁用E_STRICT似乎没有影响此警告.那么有办法只是禁用这个警告?
从技术上讲,你可以在
installing your own error handler之前做这个警告.处理程序内部检查字符串错误消息;如果它是你想要抑制的那个,那么返回true,否则返回false,让默认错误处理程序做它的事情.
然而,我仍然建议做正确的事情,并手动修复您的代码,无论这种滥用是否出现,因为,如果没有其他的,它会使你成为正确的习惯.除非这是有偿的工作(在这种情况下,通常会涉及到超越实施的纯度),将其视为一个教训,并做正确的事情.