为什么不在PHP中使用最高错误报告级别?

eis*_*erg 12 php error-reporting

我想让您说明为什么有人不应该在PHP中使用尽可能高的错误报告级别?

设定最高水平的方法:

PHP <5.4:

error_reporting(E_ALL | E_STRICT);
Run Code Online (Sandbox Code Playgroud)

PHP> = 5.4:

error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

PHP 所有版本(建议用于配置文件):

error_reporting(2147483647);
Run Code Online (Sandbox Code Playgroud)

PHP 所有版本(我的配置,-1将包含所有错误,并且易于记忆)

error_reporting(-1);
Run Code Online (Sandbox Code Playgroud)

我的经历:

Jim*_*ran 22

我个人更喜欢在最高级别的错误报告中编码,并修复我的代码生成的所有警告.但是,我可以设想一些原因,您可能希望在较低级别工作:

  1. 您可能正在处理发出大量警告的遗留代码.如果代码正常工作,这不是问题,但"噪音"可能会分散注意力并阻止您看到真正的问题.在这种情况下,可能需要降低错误报告级别.
  2. 在生产环境中,您可能只想记录错误.这有两个好处,它意味着您的错误日志仅包含需要注意的关键问题,并且它将节省磁盘空间(并减少磁盘I/O).

偏离主题:在生产环境中,您应该运行"display_errors = Off"和"error_logging = On"以防止用户看到PHP错误(可能包含敏感信息,例如数据库连接属性),并在错误发生时收集错误日志.因此,您的生产error_reporting级别和相关设置可能与您希望在开发中运行的不同.