gpt4 book ai didi

PHP, error_reporting(), 6143 触发器也 E_DEPRECATED (8192)

转载 作者:行者123 更新时间:2023-12-03 07:45:15 24 4
gpt4 key购买 nike

当我使用下面的(简化的)错误处理 $notice那么它确实捕获了 E_DEPRECATED (8192) 错误。
$notice ,值为 6143,其位掩码为:
0001011111111111
这不包括 E_DEPRECATED 的位, 如下。
0010000000000000
我不明白为什么这个错误处理也会捕获 E_DEPRECATED (8192) 错误。

$error   = (int)            E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_PARSE | E_USER_ERROR;
$warning = (int) $error | E_WARNING | E_CORE_WARNING | E_COMPILE_WARNING | E_USER_WARNING;
$notice = (int) $warning | E_NOTICE | E_USER_NOTICE;
$all = (int) $notice | E_STRICT | E_DEPRECATED | E_USER_DEPRECATED;

function error_handler($errno, $errstr, $errfile, $errline ) {
echo "$errno - $errfile:$errline $errstr") ;
}

error_reporting($notice);
set_error_handler("error_handler");

最佳答案

默认情况下,每个错误都会调用您的错误处理程序。为了考虑 error_reporting 级别,您需要手动执行此操作:

function error_handler($errno, $errstr, $errfile, $errline ) {
if (!(error_reporting() & $errno)) {
return;
}
echo "$errno - $errfile:$errline $errstr") ;
}

您还可以在绑定(bind)时限制错误级别。在你的情况下:
set_error_handler("error_handler", $notice);

documentation详情。

关于PHP, error_reporting(), 6143 触发器也 E_DEPRECATED (8192),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19807141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com