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);
1
lijialong1313 2021-04-05 02:13:43 +08:00
|
2
wfdaj OP @lijialong1313 就是在首页 Debug::displayErrors(0); 这样调用后,输出 display_errors 的值还是 1 。
|
3
Oceanhime 2021-04-05 09:46:03 +08:00
确定 if 里面的语句真的被执行了吗
|
4
seth19960929 2021-04-05 09:47:42 +08:00
传入 0 输出值还是 1 的原因可能是你的 php.ini 设置的默认值是 1
所以不能判断 $status 而是 ini_set('display_errors', $status); |
5
Oceanhime 2021-04-05 09:48:11 +08:00
@wfdaj 按正文里面的代码逻辑来看 Debug::displayErrors(0) 确实不会更改 display_errors 的值
因为你只写了 $status 时候的操作, 没有写 !$status 时候的操作 |
6
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(); } |
7
wfdaj OP 感谢各位的帮助,我再试试。🙏
|