PHP では、error_reporting() 関数を使用してエラー レベルを変更できます。この関数は、どのエラーを報告するかを指定できます。構文形式は「error_reporting(level)」です。パラメータ レベルはエラー報告を指定します。現在のスクリプトのレベル。値は数値です。定数名も使用できます。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
サーバーエラーは php で設定できます。 .ini アラーム レベル。デフォルトでは、PHP は通知を除くすべてのエラーを報告します。
エラー レポート レベルは、事前定義された定数によって設定されます。
構文
int error_reporting ( [int level] )
パラメータ レベルが指定されていない場合は、現在のエラー レポート レベルが返されます。次の項目は、レベルの可能な値です:
次の表に示すように:
1 E_ERROR 报告运行时的致命错误 2 E_WARNING 报告运行的非致命错误 4 E_PARSE 报告解析错误 8 E_NOTICE 报告通告,注意,表示所做的事情可能是错误的. 16 E_CORE_ERROR 报告PHP引擎启动失败 32 E_CORE_WARNING 报告PHP引擎启动时非致命错误 64 E_COMPILE_ERROR 报告编译错误 128 E_COMPILE_WARNING 报告编译时出现的非致命错误 256 E_USER_ERROR 报告用户触发的错误 512 E_USER_WARNING 报告用户触发的警告 1024 E_USER_NOTICE 报告用户触发的通告 2047 E_ALL 报告所有的错误和警告 2048 E_STRICT 报告不赞成的用法和不推荐的行为
php.ini ファイルでは、デフォルトのレポートは、によって設定されているように、通知を除くすべてのエラーです。次のステートメント:
error_reporting = E_ALL & ~ (E_NOTICE)
上記の式では、記号「&」は複数の条件の並列を示し、「~」は否定を示し、NOT を意味します。
If If警告メッセージを無視したい場合は、次のステートメントを設定できます:
error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
php.ini ファイル内のエラー関連の設定は次のとおりです:
(1) error_reporting、設定 エラー レベルを設定します。
(2)display_errors、エラー レポートを表示するかどうか、ON に設定すると開く、OFF に設定するとすべてのエラー プロンプトが閉じます
(3)log_errors、デフォルト設定は OFF です。エラー ログを記録する;
(4)track_errors、デフォルト設定は OFF です。このオプションは、PHP にデフォルト機能を提供させるのではなく、コード内のエラーを解決するのに役立ちます。
インターネットから収集:
E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。 E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。 E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。 E_PARSE 从语法中剖析错误。 E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。 E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
PHP エラー レポート
php.ini ファイルには多くの構成設定があります。 Linux に PHP をインストールするのと同じように、php.ini ファイルをすでにセットアップし、適切なディレクトリに配置しておく必要があります。 Apache 2 のドキュメントに示されているように。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです。
display_errors = Off error_reporting = E_ALL
これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索すると見つかります。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値を On に設定します。
display_errors = On
error_reporting 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 を構成する場合、
php.ini ファイルで既に行ったことを行うには、次の行を httpd.conf に追加して、php.ini ファイルを上書きします。
php_flag display_errors on php_value error_reporting 2039
これにより、php.ini が上書きされます。 files.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 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 ビデオ チュートリアル 」
以上がPHPでエラーレベルを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。