【问题标题】:PHP - error_reporting doesn't workPHP - 错误报告不起作用
【发布时间】:2012-04-23 14:27:54
【问题描述】:

我的虚拟主机提供商不提供启用错误报告的选项。 所以尝试了 error_reporting(E_ALL);但这也行不通。 我尝试了以下脚本:

 <?php
 error_reporting(E_ALL);
 echo $test;
 ?>

如果我正确阅读了手册,那么这应该会生成错误通知。但这也行不通。我做错了什么还是获得新的虚拟主机提供商的唯一解决方案?

【问题讨论】:

  • 在你的 PHP.ini 中设置 #display_error 必须开启

标签: php


【解决方案1】:

error_reporting 只是告诉 PHP 错误报告应该有多详细,但您还需要通过设置告诉它实际向浏览器显示错误

ini_set('display_errors', 1);

【讨论】:

  • 还是不够
【解决方案2】:

你还需要:

ini_set('display_errors', true);

【讨论】:

    【解决方案3】:

    您可能想要对触发的错误做一些事情,例如记录它:

    ini_set('error_log', '/path/to/php-error.log');
    

    ...和/或显示它:

    ini_set('display_errors', true);
    

    请在Error HandlingRuntime Configuration 找到更多文档。


    附录:该指令曾经被记录为布尔值,但现在不再如此。另外,由于display_errors 指令和ini_set() 的第二个参数都是string 类型,所以在使用strict types 时,您将无法传递布尔值:

    <?php
    declare(strict_types=1);
    ini_set('display_errors', true);
    

    致命错误:未捕获的 TypeError:ini_set() 期望参数 2 为字符串,给定布尔值

    因此,您需要传递一个 eval 为 true 的字符串,例如 'true''1'

    【讨论】:

      【解决方案4】:

      如果它是共享主机,那么出于安全原因,他们可能会禁用错误报告,但他们仍然应该能够为您的特定域提供错误日志,如果他们不想内联显示它,请尝试与他们交谈 - 获取访问权限去日志文件或者一些可以安全读取它的管理面板。

      【讨论】:

        猜你喜欢
        • 2012-05-08
        • 1970-01-01
        • 2023-03-15
        • 2011-12-12
        • 1970-01-01
        • 2013-12-13
        • 2011-08-29
        • 2012-09-16
        • 2013-09-15
        相关资源
        最近更新 更多