为什么不使用PHP中的最高错误报告级别?
我想让你给出为什么有些人不应该使用PHP中可能的最高错误报告级别的原因 设置最高级别的方法: PHP<5.4:为什么不使用PHP中的最高错误报告级别?,php,error-reporting,Php,Error Reporting,我想让你给出为什么有些人不应该使用PHP中可能的最高错误报告级别的原因 设置最高级别的方法: PHP=5.4: error_reporting(E_ALL); PHP所有版本(推荐用于): PHP所有版本(我的配置,-1将包含所有错误,并且易于记忆) 我的经历: 没有理由报告水平低 从未使用过 用于通过自定义异常类将所有错误转换为异常,以覆盖文件和行 我个人更喜欢在错误报告的最高级别编写代码,并修复代码生成的所有警告。然而,我可以设想你为什么想要在较低级别工作的几个原因: 您可能正在使用会发
error_reporting(E_ALL | E_STRICT);
PHP>=5.4:
error_reporting(E_ALL);
PHP所有版本(推荐用于):
PHP所有版本(我的配置,-1将包含所有错误,并且易于记忆)
我的经历:
- 没有理由报告水平低
- 从未使用过
- 用于通过自定义异常类将所有错误转换为异常,以覆盖文件和行
撇开话题不谈:在生产环境中,您应该运行“display_errors=Off”和“error_logging=On”以防止用户看到PHP错误(可能包含敏感信息,例如数据库连接属性),并在错误发生时收集错误日志。因此,您的生产错误报告级别和相关设置可能与您希望在开发中运行的不同。我认为没有什么好的理由,除了Jim在第一点中所说的,运行不能或不会更改的遗留代码 您应该在开发过程中以最高级别运行它,并消除所有警告和通知,除非您有充分的理由不这样做
如果您有很好的理由不在开发过程中修复通知,那么您应该将其记录下来,并使用错误控制操作符来避免日志混乱。除了Jim的观点之外,我始终建议使用最高级别的错误报告进行编码,因为它应该为您提供更好的可移植性和(毫无疑问)性更好的性能。从系统管理员的角度来看,有时您对代码无能为力-旧代码或新代码。有些开发人员没有正确地调试,如果你把任何人的时间浪费在一些无关紧要的事情上,经理会觉得你很可笑(不确定这是否会让任何人感到不安,但如果前后的结果相同,那么这真的无关紧要)。就我个人而言,我很高兴我能禁用这些通知并专注于任何真正的问题
此外,这只是一个偶然的机会,但也许有一些方法可以通过使用error_log()调用来进行调试因此,代替EyALL考虑使用更大的值来覆盖从现在到将来的所有位字段,比如2147483647的数值。“如果这是推荐的值用于Error报告,为什么他们不将EyALL设置为2147483647??如果是生产。有时他不希望客户看到img不存在或不存在的警告something@haim:您应该记录错误,而不是在浏览器中显示错误。请记住,问题不是您希望如何处理错误(显示或记录错误)。请注意,最高错误报告级别的十六进制表示法更容易记住,然后用十六进制编写:0x7FFFFFFF(0x表示十六进制表示法,一个7,然后是7 F)我看不出性能如何与此相适应,除了错误控制操作符的速度慢之外,使用错误控制操作符的性能开销很小。然而,主要的性能成本是触发警告本身(然后被抑制)的行为。我在最初的回答中没有考虑到这一点,但威尔实际上是正确的,发出大量警告(报告或其他)的代码可能比不发出警告的干净代码运行得慢。有关基准,请参阅。
error_reporting(2147483647);
error_reporting(-1);