在我的一个脚本中,我设置了一个自定义错误处理程序,这可能会触发另一个错误。我已经在消息中包括了原始错误的消息,文件和行,但是PHP始终通过在f
的{{1}}行的'l
'中扩展它,引用了trigger_error
调用,在错误处理程序中并且没有用。
有什么办法可以抑制这种情况?
我要做的是将未定义变量的NOTICE
转换为致命错误,以便PHP在遇到未定义变量时不会继续运行。
这是我的代码:
function undefined_name_error($errno, $errstr, $errfile='', $errline=0, $errcontext=NULL) {
if (stripos($errstr, 'undefined') !== false)
return trigger_error("$errstr in $errfile on line $errline;", E_USER_ERROR);
else
return false;
}
set_error_handler('undefined_name_error', E_NOTICE);
当前它会产生如下输出:
PHP致命错误:未定义变量:第12行的test.php中的var;在 第6行的test.php