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  

そして、 error_reporting(2)のように機能するために番号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  

しかし、レポートE_ERRORエラーに対してのみerror_reporting(1)のように機能するように番号1を渡すと、エラーは表示されません。問題は何ですか?教えてください

4

4 に答える 4

4

E_ERRORrequire はスローするのではなく、をスローすると思います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) ;

これにより、必要なすべてのエラーが得られるはずです

アップデート

このURLをチェック

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 に答える