PHP 5.4:禁用警告"从空值创建默认对象"

Wer*_*ner 10 php error-reporting

我想将代码从PHP 5.2迁移到5.4.到目前为止这个工作正常,只是我使用的所有代码都广泛使用了一个没有任何初始化的成员的对象,如:

$MyObject->MyMember = "Hello";
Run Code Online (Sandbox Code Playgroud)

这会产生警告:"从空值创建默认对象"

我知道解决方案是使用:

$MyObject = new stdClass();
$MyObject->MyMember = "Hello";
Run Code Online (Sandbox Code Playgroud)

但是在我的所有代码中改变这一点将是很多工作,因为我在不同的项目中多次使用它.我知道,这不是很好的风格,但遗憾的是,我无法在接下来的几周内将其添加到我的所有代码中.

我知道我可以将php error_reporting设置为不报告警告,但我希望能够仍然获得其他警告和通知.启用或禁用E_STRICT似乎不会影响此警告.那么有没有办法禁用此警告?!

Jon*_*Jon 8

从技术上讲,您可以通过安装自己的警告错误处理程序来完成此操作.从处理程序内部检查字符串错误消息; 如果它是你要抑制的那个return true,否则return false让默认的错误处理程序做它的事情.

但是,我仍然会建议做正确的事情并手动修复您的代码,只要出现这种误用,因为如果没有别的话,它会让您养成正确的习惯.除非这是付费工作(在这种情况下通常存在超越实施纯度的担忧),否则将其视为一个教训并做正确的事情.