E_ALL | E_COMPILE_ERROR不显示致命错误(不能重新声明函数)


E_ALL | E_COMPILE_ERROR does not show fatal error (cant redeclare function)

对于这个错误:致命错误:Cannot redeclare sc_trace_page()(先前声明的[…yadayada]

我试了所有这些:

error_reporting('E_ALL ^ E_NOTICE'); 
error_reporting('E_ALL | E_COMPILE_ERROR');
error_reporting('E_COMPILE_ERROR |E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR|E_PARSE');
error_reporting(32767); 

只有32767显示错误。甚至在error_log中。WAMP和一个名牌共享主机。似乎很不明智,我可以E_ALL而不让它显示给我看…"所有"错误。但是,当然,我不想要通知。

那么,我没有理解什么,我如何才能实现正确的错误报告?

你试过error_reporting(E_ALL &~E_NOTICE)至少在你的WAMP里?这些是常量,不是字符串,所以。没有报价!

你也可以声明一个以前没有声明过的函数

if (!function_exists('my_function')) {
    function my_function(){
    }
}

error_reporting(32767);只是error_reporting(E_ALL);的十进制表示。注意,这些值周围没有引号,因为它们是预定义的错误常量。

你想找出error_reporting常量的哪个组合可以捕获你想要的报告。

尝试混合和匹配PHP文档中提供的错误常量,或者如果您想继续十进制表示,请尝试此链接