Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不使用PHP中的最高错误报告级别?_Php_Error Reporting - Fatal编程技术网

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

为什么不使用PHP中的最高错误报告级别?,php,error-reporting,Php,Error Reporting,我想让你给出为什么有些人不应该使用PHP中可能的最高错误报告级别的原因 设置最高级别的方法: PHP=5.4: error_reporting(E_ALL); PHP所有版本(推荐用于): PHP所有版本(我的配置,-1将包含所有错误,并且易于记忆) 我的经历: 没有理由报告水平低 从未使用过 用于通过自定义异常类将所有错误转换为异常,以覆盖文件和行 我个人更喜欢在错误报告的最高级别编写代码,并修复代码生成的所有警告。然而,我可以设想你为什么想要在较低级别工作的几个原因: 您可能正在使用会发

我想让你给出为什么有些人不应该使用PHP中可能的最高错误报告级别的原因

设置最高级别的方法:

PHP<5.4:

error_reporting(E_ALL | E_STRICT);
PHP>=5.4:

error_reporting(E_ALL);
PHP所有版本(推荐用于):

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

我的经历:

  • 没有理由报告水平低
  • 从未使用过
  • 用于通过自定义异常类将所有错误转换为异常,以覆盖文件和行

我个人更喜欢在错误报告的最高级别编写代码,并修复代码生成的所有警告。然而,我可以设想你为什么想要在较低级别工作的几个原因:

  • 您可能正在使用会发出大量警告的遗留代码。如果代码工作正常,这不是问题,但“噪音”可能会分散注意力,使您看不到真正的问题。在这种情况下,可能需要降低错误报告级别
  • 在生产环境中,您可能只希望记录错误。这有两个好处,这意味着您的错误日志只包含需要注意的关键问题,它将节省磁盘空间(并减少磁盘i/o)

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

    我认为没有什么好的理由,除了Jim在第一点中所说的,运行不能或不会更改的遗留代码

    您应该在开发过程中以最高级别运行它,并消除所有警告和通知,除非您有充分的理由不这样做


    如果您有很好的理由不在开发过程中修复通知,那么您应该将其记录下来,并使用错误控制操作符来避免日志混乱。

    除了Jim的观点之外,我始终建议使用最高级别的错误报告进行编码,因为它应该为您提供更好的可移植性和(毫无疑问)性更好的性能。

    从系统管理员的角度来看,有时您对代码无能为力-旧代码或新代码。有些开发人员没有正确地调试,如果你把任何人的时间浪费在一些无关紧要的事情上,经理会觉得你很可笑(不确定这是否会让任何人感到不安,但如果前后的结果相同,那么这真的无关紧要)。就我个人而言,我很高兴我能禁用这些通知并专注于任何真正的问题


    此外,这只是一个偶然的机会,但也许有一些方法可以通过使用error_log()调用来进行调试error_reporting(2147483647);
    error_reporting(-1);