我想创建一个自定义错误处理程序,但PHP忽略它仍然使用内置错误处理程序。下面的示例给出了内置的致命错误,因为未定义test():
function critical_error($error_number,$error_string,$error_file,$error_line,$error_context) {
echo "<strong>error:</strong> echo ".$error_string;
exit();
}
set_error_handler("critical_error",8191);
test();
exit;
有什么建议吗?
答案 0 :(得分:5)
您可能错误地定义了错误级别。尝试使用:
set_error_handler("critical_error", E_ALL);
另请注意:
使用用户定义无法处理以下错误类型 功能:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING, E_COMPILE_ERROR,E_COMPILE_WARNING和大多数E_STRICT在 调用set_error_handler()的文件。
但如果没有完整的脚本(包括test()
),很难说清楚。我在我的本地服务器上测试过,一切正常。