error_reporting无法正常显示致命错误

时间:2012-04-14 09:36:10

标签: php

我有一个像这样的页面:

error_reporting(-1);
require('test.txt');

我知道test.txt不存在。我想尝试 error_reporting()功能。 在这种情况下,我们传递数字 -1 以正确报告所有错误,如下所示:

Warning: require(test.txt) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\PHP_Class\session_5\errors.php on line 11
Fatal error: require() [function.require]: Failed opening required 'test.txt' (include_path='.;C:\php\pear') in C:\wamp\www\PHP_Class\session_5\errors.php on line 11  

当我们将数字 2 传递给函数,例如error_reporting(2)时,只报告了E_WARNING错误,这也是正确的:

Warning: require(test.txt) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\PHP_Class\session_5\errors.php on line 11  

但是,如果我将数字 1 传递给 error_reporting(1)仅用于报告E_ERROR错误,则不会显示错误。 有什么问题?请告诉我

4 个答案:

答案 0 :(得分:4)

我认为require不会抛出E_ERROR而是E_COMPILE_ERROR 所以请使用error_reporting(E_COMPILE_ERROR);

进行试用

答案 1 :(得分:3)

这个怎么样

error_reporting (E_ALL & ~E_WARNING & ~E_NOTICE & ~E_DEPRECATED) ;

这应该可以为您提供所需的所有错误

<强>更新

chk this url

http://www.php.net/manual/en/function.require.php

它说

  除了失败之外,它还会产生致命的伤害   E_COMPILE_ERROR级别错误。

所以这段代码总是会给出编译错误.... 以上配置最适合您的生产环境。

答案 2 :(得分:2)

试试这个

error_reporting(64);
require('test.txt');

答案 3 :(得分:1)

如果要抑制错误

,这是正确的方法
error_reporting(E_COMPILE_ERROR );
require('test.txt');

反正它不是advice ..