ホームページ > バックエンド開発 > PHPチュートリアル > PHP での error_reporting() 関数の使用法 (PHP シールド エラーを変更する)

PHP での error_reporting() 関数の使用法 (PHP シールド エラーを変更する)

WBOY
リリース: 2016-08-08 09:31:53
オリジナル
1242 人が閲覧しました
構文
error_reporting(report_level)
パラメータレベルが指定されていない場合は、現在のエラーレポートレベルが返されます。レベルに指定できる値は次のとおりです:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
3 2 E_ コア_警告
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 ICT
E_NOTICE は、通常の状況が記録されていないことを示します。プログラムにエラー状況が発生した場合にのみ使用されます。不明な既存変数にアクセスしようとしたり、stat() 関数を呼び出して存在しないファイルを表示しようとしたりするなどです。通常、
E_WARNING が表示されますが、プログラムの実行は中断されません。これはデバッグに役立ちます。たとえば、問題のある正規表記を使用して ereg() を呼び出します。通常は
E_ERROR が表示され、プログラムの実行が中断されます。これは、このマスクを使用してメモリ構成やその他のエラーを追跡できないことを意味します。
E_PARSE 構文のエラーを解析します。
E_CORE_ERROR E_ERROR と似ていますが、PHP コアによって引き起こされるエラーは除外されます。
E_CORE_WARNING E_WARNING と似ていますが、PHP コア エラーの警告は含まれません。
PHP Error Reporting
php.ini ファイルには多くの構成設定があります。 Linux への PHP および Apache 2 のインストールに関するドキュメントに示されているように、php.ini ファイルがすでにセットアップされ、適切なディレクトリに配置されている必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです: display_errors = Off
error_reporting = E_ALL
これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索することで見つけることができます。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値を次のように設定します。 On:
display_errors = On
error_reporting変数のデフォルト値はE_ALLです。この設定では、不適切なコーディング方法から無害なヒント、エラーに至るまで、あらゆるものが表示されます。 E_ALL は、ブラウザの出力を混乱させる小さな事柄 (初期化されていない変数など) についてのヒントも画面上に表示するため、開発目的には少し粒度が高すぎます。私が知りたいのはエラーと不適切なコーディング方法だけであり、無害なヒントは知りたいわけではありません。したがって、次の値に置き換えてください error_reporting のデフォルト値:
error_reporting = E_ALL & ~E_NOTICE
Apache を再起動すると、すべてが設定されます。次に、Apache で同じことを行う方法を学びます。
サーバー上のエラー報告
Apache の動作によっては、コンピュータ上に複数のバージョンの PHP が存在する可能性があるため、PHP でのエラー報告を有効にしても機能しない場合があります。 Apache は 1 つの php.ini しか参照できないため、Apache がどの PHP バージョンを使用しているかを判断するのが難しい場合があります。 書類。 Apache が自身の設定にどの php.ini ファイルを使用しているかわからないことは、セキュリティ上の問題です。ただし、正しいエラー レベルが設定されるように Apache で PHP 変数を構成する方法があります。
また、サーバー側でこれらの構成変数を設定して、php.ini ファイルをオーバーライドまたはプリエンプトして、より高いレベルのセキュリティを提供する方法を知っておくと良いでしょう。
Apache を構成するときは、/conf/httpd.conf の http.conf ファイルの基本構成をすでに理解している必要があります。
php.ini ファイルですでに行ったことを行うには、次の行を httpd.conf に追加し、php.ini ファイルを上書きします:
php_flag display_errors on
php_value error_reporting 2039
これはphp.ini ファイルに既に設定されている display_errors のフラグと error_reporting の値を上書きします。値 2039 は E_ALL および ~E_NOTICE を表します。 E_ALL を使用する場合は、値を次のように設定します。 2047年。繰り返しますが、Apache を再起動する必要があります。
次に、サーバーでのエラー報告をテストする必要があります。
error_reporting() 関数に関しては、一部のエラー メッセージをシールドできますが、PHP コアによって発生したエラーはシールドできません。PHP コアによって発生したエラーは、PHP ファイルのコンパイルの失敗を直接引き起こすためです。 PHP コーディング規則に従って記述したことによって発生するエラーはブロックできません

// Turn off all error reporting;关闭所有的错误 
error_reporting(0); 

// Report simple running errors;报告一个简单的运行错误 
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

// Reporting E_NOTICE can be good too (to report uninitialized 
// variables or catch variable name misspellings …);包括报告一些未初始化的变量或捕捉变量名的拼写错误 
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 

// Report all errors except E_NOTICE 
// This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE 这也是php.ini的缺省设置 
error_reporting(E_ALL ^ E_NOTICE); 

// Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误 
error_reporting(E_ALL); 

// Same as error_reporting(E_ALL);同上 
ini_set('error_reporting', E_ALL); 
ログイン後にコピー

上記では、PHP での error_reporting() 関数の使用法 (エラーをブロックするための PHP の変更) を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート