2

我有一个简单的页面:

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

4 回答 4

4

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

于 2012-04-14T09:47:37.687 回答
3

这个怎么样

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

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

更新

查一下这个网址

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

它说

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

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

于 2012-04-14T09:45:22.627 回答
2

试试这个

error_reporting(64);
require('test.txt');
于 2012-04-14T09:47:50.527 回答
1

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

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

advice反正不是这样的..

于 2012-04-14T09:39:57.980 回答