请问,我该如何设置 ini_set display_errors 的值?

2021-04-05 00:40:40 +08:00
 wfdaj

Debug 类里这样写的:

/**
 * 是否显示错误,默认不显示
 */
public static function displayErrors($status = false)
    {
        if ($status) {
            // 报告所有 PHP 错误
            ini_set('display_errors', 1);
            error_reporting(E_ALL);
        }

        // self::error_handler();
    }

然后这样调用就无效

Debug::displayErrors(1);

但我在页面里直接这样用可以正常设置:

ini_set('display_errors', 1);
1870 次点击
所在节点    PHP
7 条回复
lijialong1313
2021-04-05 02:13:43 +08:00
没懂你的意思,建议发完整代码,是怎么设置不行怎么行。

https://www.php.net/manual/zh/errorfunc.configuration.php
wfdaj
2021-04-05 08:18:25 +08:00
@lijialong1313 就是在首页 Debug::displayErrors(0); 这样调用后,输出 display_errors 的值还是 1 。
Oceanhime
2021-04-05 09:46:03 +08:00
确定 if 里面的语句真的被执行了吗
seth19960929
2021-04-05 09:47:42 +08:00
传入 0 输出值还是 1 的原因可能是你的 php.ini 设置的默认值是 1

所以不能判断 $status
而是 ini_set('display_errors', $status);
Oceanhime
2021-04-05 09:48:11 +08:00
@wfdaj 按正文里面的代码逻辑来看 Debug::displayErrors(0) 确实不会更改 display_errors 的值
因为你只写了 $status 时候的操作, 没有写 !$status 时候的操作
lijialong1313
2021-04-05 13:26:17 +08:00
@wfdaj 你调用 0 都没设置成 error 0
应该是类似:
public static function displayErrors($status = false)
{
if ($status) {
// 报告所有 PHP 错误
ini_set('display_errors', 1);
error_reporting(E_ALL);
}
else{
ini_set('display_errors', 0);
}

// self::error_handler();
}
wfdaj
2021-04-06 08:51:03 +08:00
感谢各位的帮助,我再试试。🙏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX