我们应该使用 E_ALL 还是 E_STRICT?
E_ALL 推荐用于开发环境,因为它允许开发人员在将代码转移到生产环境之前解决所有潜在的错误。
在生产环境中可以完全禁用公共错误,相反,我们可能只需要启用错误日志记录以跟踪意外错误,并且不会向公众过多地公开有关应用程序的信息。
如果我们打算使用自己的自定义错误处理程序,我们应该禁用错误并从错误处理程序中处理它们。
使用自定义错误处理程序很酷,并允许我们在自己的 HTML 模板中显示错误消息,但它可能主要在处理较大的编码项目时完成,例如 CMS 或者框架。
E_STRICT 已在 PHP 7 中重新分类为 E_NOTICE 和 E_WARNING,因此以下内容可能不再相关。
另请参阅:PHP RFC:重新分类 E_STRICT 通知 (php.net)
在为 PHP 选择错误报告级别时,我们可能想知道 E_ALL 和 E_STRICT 之间的区别是什么;要了解区别是什么,我们应该知道 E_STRICT 的用途。
E_STRICT 将显示有关可能已弃用或者可能无法适应未来的代码使用的警告;官方文档 (php.net) 指出 E_STRICT 不是 E_ALL 的一部分,但这是不准确的。
如果我们选择 E_ALL 级别的错误报告,则还将包括来自 E_STRICT 的消息。
E_STRICT 不包括通知或者警告。
这意味着——如果你在声明一个变量之前使用它(将生成一个通知),或者如果你尝试包含一个不存在的文件(将生成一个警告)——你在使用错误报告时不会收到通知E_STRICT 的级别。
E_ALL 报告级别包括所有错误消息。
如果我们打算显示所有错误消息,包括警告和通知,那么我们应该将其用作错误报告级别。