PHP変更エラーレベル

PHPz
PHPzオリジナル
2023-05-07 10:58:08799ブラウズ

PHP で開発していると、さまざまなエラーが頻繁に発生します。これらのエラー メッセージは通常、コードの問題を迅速にトラブルシューティングして解決するのに役立ちます。ただし、運用環境では、これらのエラーをユーザーに公開したくない場合があります。このため、PHP にはエラー レベル制御機能が用意されており、エラーの表示方法を自由に制御できます。

PHP のエラー レベルは、次の 8 つのレベルに分かれています:

  1. E_ERROR: 致命的なエラーを解決する必要があり、解決しないとコードの実行を続行できません。 E_WARNING: 警告エラー。コードの実行は停止しませんが、修復が必要です。
  2. E_PARSE: 構文解析エラー。通常はコード構文エラーが原因です。
  3. E_NOTICE: 通知エラーコードの実行が停止することはありませんが、修正する必要があります;
  4. E_CORE_ERROR: カーネルの致命的なエラー (PHP カーネルの初期化中に発生するエラーなど);
  5. E_CORE_WARNING: カーネルの警告エラー;
  6. E_COMPILE_ERROR: コンパイルの致命的なエラー、たとえば、インクルードされたファイルが存在しないなど;
  7. E_COMPILE_WARNING: コンパイル警告エラー。
  8. PHP のデフォルトのエラー レベルは E_ALL です。これは、すべてのレベルのエラー プロンプトが有効であることを意味します。このレベルは開発時に非常に役立ち、バグをできるだけ早く発見して解決するのに役立ちます。ただし、運用環境では通常、エラー情報をユーザーに公開したくないため、この場合はエラー レベルを変更することでエラー情報を制御できます。

エラー レベルを変更するには 2 つの方法があります。コード内で設定に ini_set 関数を使用するか、PHP 設定ファイル php.ini を変更します。以下に 2 つの方法を紹介します。

ini_set 関数を使用してエラー レベルを変更する
  1. ini_set 関数を使用すると、コード内の PHP 構成項目を一時的に変更できます。この関数を使用して、PHP のエラー レベルを変更できます。次のコード例は、エラー レベルを E_ALL & ~E_NOTICE & ~E_WARNING に設定する方法、つまり通知と警告プロンプトをオフにする方法を示しています。
// 设置错误级别为E_ALL & ~E_NOTICE & ~E_WARNING
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING);

// 执行代码
echo $undefinedVariable;

上記のコードでは、最初に ini_set 関数を使用して設定します。エラー レベルを E_ALL & ~E_NOTICE & ~E_WARNING に設定し、未定義変数 $undefineVariable に意図的にアクセスしました。通知と警告をオフにしているため、PHP は通知エラー「未定義の変数: undependentVariable」を表示しません。ただし、エラー レベルを E_ALL に設定すると、PHP は未定義の変数にアクセスするときに次のエラーをスローします:

Notice: Undefined variable: undefinedVariable in /path/to/file.php on line 5

したがって、エラー レベルを変更することで、PHP が特定の種類のエラー メッセージを表示するかどうかを制御できます。

PHP 構成ファイル php.ini を変更してエラー レベルを変更する
  1. ini_set 関数を使用してコード内のエラー レベルを構成することに加えて、次のこともできます。これは、php.ini 設定ファイルの設定で行います。 php.ini 設定ファイルは PHP システム全体に有効となり、各 PHP ファイルで設定項目の値にアクセスできます。 php.ini 設定ファイルのエラー レベルに関連する設定項目は次のとおりです。
; 显示所有错误
error_reporting = E_ALL

; 显示 E_NOTICE、E_WARNING 和 E_ERROR 级别的错误
error_reporting = E_ERROR | E_WARNING | E_NOTICE

; 显示所有错误,除了 E_NOTICE 级别的错误
error_reporting = E_ALL & ~E_NOTICE

本番環境を保護するために、通常、エラー レベルは E_ALL & ~E_NOTICE & ~E_WARNING に設定されます。これにより、通知と警告がオフになり、致命的なエラーと解析エラーのみが表示されます。

概要

開発プロセス中、できるだけ早くエラーを見つけて解決したいため、デフォルトですべてのエラー レベルのプロンプトをオンにすると非常に便利です。ただし、運用環境では通常、エラー メッセージがユーザーに公開されることは望ましくないため、エラー レベルを変更してエラー メッセージの表示方法を制御する必要があります。この機能は、ini_set 関数を通じて実現するか、PHP 設定ファイル php.ini を変更することで実現できます。実際の使用では、タイムリーなエラーのトラブルシューティングと解決を容易にするために、実際のニーズに応じてエラー レベルを柔軟に設定する必要があります。

以上がPHP変更エラーレベルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。