代码之家  ›  专栏  ›  技术社区  ›  Valdemarick

为什么PHP会回送错误,即使有错误报告(0)?

  •  11
  • Valdemarick  · 技术社区  · 16 年前

    为什么PHP会强制显示错误,不管您告诉它禁用什么,原因是什么?

    我试过了

    error_reporting(0);
    ini_set('display_errors',0); 
    

    运气不好。

    8 回复  |  直到 7 年前
        1
  •  15
  •   Adam Wright    16 年前

    请注意手册中的警告: http://uk.php.net/error_reporting :

    大多数E_严格错误在编译时进行评估,因此这些错误不会在增强了错误报告功能的文件中报告,包括E_严格错误(反之亦然)。

    如果您的底层系统被配置为报告E_严格的错误,那么这些错误可能会在您的代码被考虑之前被输出。别忘了,错误报告/ini设置是运行时评估,在“运行前”阶段执行的任何操作都不会看到其效果。


    根据您的评论,您的错误是…

    分析错误:语法错误,意外的t_变量,在第11行的/usr/home/redacted/public_html/dev.php中应为“,”或“;”

    同样的一般概念也适用。您的代码永远不会运行,因为它在语法上是无效的(您忘记了“;”)。因此,不会遇到您更改错误报告的情况。

    修复此问题需要更改系统级错误报告。例如,在Apache上,您可以放置…

    php值错误报告0

    在一个.htaccess文件中抑制它们,但这取决于系统配置。

    从语用上讲,不要写语法错误的文件:)

        2
  •  3
  •   Willem    16 年前

    为了防止错误显示,您可以

    • 在.htaccess中写入: php_标志显示错误0
    • 分裂你 在单独的模块中编码,其中 主(父)php文件只设置 错误记录,然后include()。 其他文件。
        3
  •  1
  •   khalid    14 年前

    使用phpinfo查找加载的php.ini并编辑它以隐藏错误。它将覆盖您在脚本中放置的内容。

        4
  •  1
  •   komodosp    11 年前

    set_error_handler() 在脚本中的任何地方使用?这将覆盖错误报告(0)

        5
  •  0
  •   Vinko Vrsalovic    16 年前

    使用日志记录错误而不是显示错误

        6
  •  0
  •   troelskn    16 年前

    如果在Apache中使用php_admin_值指定了该设置,则不能在.htaccess或运行时更改该设置。 见: http://docs.php.net/configuration.changes

        7
  •  0
  •   ob-ivan    9 年前

    从语用上讲,不要写语法错误的文件:)

    要确保文件中没有语法错误,请运行以下命令:

    php -l YOUR_FILE_HERE.php
    

    这将输出如下内容:

    PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31
    

    希望这有帮助。

        8
  •  0
  •   dheerendra    7 年前

    只需在您的 索引文件 文件:

    ini_set(“显示_错误”,false);