error_reporting无法正常工作以显示致命错误


error_reporting not work correctly to show fatal errors

>我有一个这样的页面:

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

我知道测试不存在.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错误时,没有错误显示。什么是问题?请告诉我

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

这个怎么样

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

这应该给你所需的所有错误

更新

中国 此网址

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

它说

包括,除非失败,否则它还会产生致命的 E_COMPILE_ERROR级别错误。

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

试试这个

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

如果要抑制错误,这是正确的方法

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

反正不是这样advice..