PHP のエラー レベルはどれくらいですか?

青灯夜游
リリース: 2023-03-17 20:46:01
オリジナル
4660 人が閲覧しました

php エラー レベルは次のとおりです: 1. E_ERROR 致命的な実行時エラー、通常は回復不可能; 2. E_WARNING 実行時警告 (致命的ではないエラー); 3. E_PARSE コンパイル時構文解析エラー; 4. E_CORE_ERROR は致命的なエラーです5. E_CORE_WARNING は初期化起動処理中に発生する警告(致命的ではないエラー) 6. E_COMPILE_ERROR 7. E_COMPILE_WARNING など

PHP のエラー レベルはどれくらいですか?

このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

私たちのプログラム開発では、よく次のような問題が発生します。プログラム実行エラーが発生した場合、PHP はプログラムのエラー レベルに応じて異なるプロンプトを表示します。例えば、警告やエラーなどですが、これらのエラーは設定することができ、軽微なエラーであれば報告されないようにすることができます。

php のエラー レベル:

4 (整数) )##32##64##128##E_COMPILE_WARNINGinteger(integer##512##1024##E_RECOVERABLE_ERROR() PHP 5.2.0 以降##E_DEPRECATED# (整数)##16384 ユーザーが生成した警告メッセージ。 #30719出力されるすべてのエラーおよび警告メッセージ。

PHP でエラー報告レベルを設定する方法:

1. PHP 構成ファイル php.ini を変更します。

この方法で error_reporting を設定した後、Web サーバーを再起動すると、設定が永続的に有効になります。
設定ファイル php.ini を開いて、次のようにエラー報告レベル error_reporting のデフォルト値を確認します。

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
ログイン後にコピー

これは、E_DEPRECATED と E_STRICT を除くすべてのエラーを報告することを意味します。
これを次のように変更します:

error_reporting=E_ALL &  ~E_NOTICE1.
ログイン後にコピー

これは、E_NOTICE を除くすべてのエラーを報告することを意味します。これは最も一般的に使用されるエラー報告レベルでもあり、アテンション クラスのエラー (未定義変数の使用など) は報告されません。
保存して、Web サーバーを再起動した後に有効になります。

2. error_reporting() 関数を使用します

このように設定すると、すぐに有効になります。ただし、現在のスクリプトの error_reporting() 関数呼び出しの背後の領域のみです。

int error_reporting ([ int $level ] )1.
ログイン後にコピー

パラメータには、整数または対応する定数識別子を指定できます。定数形式を使用することをお勧めします。戻り値は、現在の場所で有効なエラー報告レベルの値 (整数値) です。

注: 設定ファイル php.ini の display_errors のデフォルト値は On で、これはエラー プロンプトが表示されることを意味します。Off に設定すると、すべてのエラー プロンプトがオフになります。

error_reporting(0) を使用するか、関数の前に # を追加してエラー出力を抑制し、エラー メッセージによる機密情報の漏洩を防ぎます。

パラメータ レベル

新しい error_reporting レベル。ビットマスクまたは名前付き定数を使用できます。

将来のバージョンとの互換性を確保するために、名前付き定数を使用することをお勧めします。エラー レベルの追加と整数値の範囲の増加により、

古い整数ベースのエラー レベルは常に期待どおりに動作するとは限りません。

レベルの可能な値 (php のエラー報告レベル)

共通: 合計約 15

PHP のエラー レベルはどれくらいですか?

#15 はバイナリの 15 に対応しますビット。

上の表のフィールドは静的ではないことに注意してください。PHP バージョンが異なると、値も異なる場合があります。

上記のオプションは、任意の数で「or」で接続できます ( OR または |) を使用して、必要なエラー レベルをすべて報告します。

たとえば、次のコードはユーザー定義のエラーと警告をオフにし、特定の操作を実行した後、元のエラー レベルに戻ります。

例:

<?php
     error_reporting(0);                //禁用错误报告
     error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误
     error_reporting(E_ALL);            //报告所有错误
     error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置
     error_reporting(-1);               //报告所有 PHP 错误
     error_reporting(3);                //不报E_NOTICE
     error_reporting(11);               //报告所有错误
     ini_set(&#39;error_reporting&#39;, E_ALL); // 和 error_reporting(E_ALL); 一样
     error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。
?>
ログイン後にコピー

変換関係:

  • E_All: 10 進数は 30719、2 進数に変換すると 111011111111111

  • E_NOTICE: 10 進数は 8、2 進数に変換すると 1000

  • #~E_NOTICE: E_NOTICE を否定して 0111
  • ##E_ALL & ~E_NOTICE:: E_ALL と ~E_NOTICE を AND 演算すると、111011111110111 になります。 10 進数に変換すると 30711
  • になります。E_ALL がすべてのエラーを表示するわけではないことがわかります。12 番目のビットは 0 です。このビットの重みは 2 の 11 乗、つまり 2048 です。実際には、 E_STRICT の値なので、E_ALL は E_STRICT を除くすべてのエラー レベルを表示します。

    E_ALL と ~E_NOTICE はバイナリで見ることができ、右から左に、4 ビット目と 12 ビット目は 0、4 ビット目の重みは 2 の 3 乗です。 8 は E_NOTICE の値であるため、E_STRICT と E_NOTICE を除くすべてのエラーが表示されます。
  • 推奨学習: 「
  • PHP ビデオ チュートリアル

1 E_ERROR (整数) 致命的な実行時エラー。このタイプのエラーは、メモリ割り当てによって引き起こされる問題など、通常は回復不可能な状況です。その結果、スクリプトは終了し、実行が続行されなくなります。
##2 ##E_WARNING (整数) )実行時警告 (致命的ではないエラー)。プロンプト メッセージのみが表示されますが、スクリプトは終了しません。
##E_PARSE (整数) )コンパイル時の構文解析エラー。解析エラーはパーサーによってのみ生成されます。
##8
##E_NOTICE 実行時通知。スクリプトでエラーとして表示される可能性のある状況が発生したことを示しますが、正常に実行できるスクリプトでも同様の通知が表示される可能性があります。
16 E_CORE_ERROR(integer) PHP で初期化する起動中に致命的なエラーが発生しました。このエラーは E_ERROR に似ていますが、PHP エンジン コアによって生成されます。 PHP 4 以降
##E_CORE_WARNING(integer) PHP の初期化起動中に発生した警告 (致命的ではないエラー)。 E_WARNING に似ていますが、PHP エンジン コアによって生成されます。 PHP 4 以降
##E_COMPILE_ERROR (integer) 致命的なコンパイル時エラー。 E_ERROR に似ていますが、Zend スクリプト エンジンによって生成されます。 PHP 4 以降
() コンパイル時の警告 (致命的ではないエラー)。 E_WARNING に似ていますが、Zend スクリプト エンジンによって生成されます。 PHP 4 以降##256 ##E_USER_ERROR
) ユーザーによって生成されたエラー メッセージ。 E_ERROR と似ていますが、ユーザーがコード内で PHP 関数 trigger_error() を使用して生成されます。 PHP 4 以降
##E_USER_WARNING(integer) ユーザーによって生成された警告メッセージ。 E_WARNING と似ていますが、ユーザーがコード内で PHP 関数 trigger_error() を使用して生成されます。 PHP 4 以降
##E_USER_NOTICE (integer) ユーザーによって生成された通知情報。 E_NOTICE と似ていますが、ユーザーがコード内で PHP 関数 trigger_error() を使用して生成されます。 PHP 4 以降 ##2048
E_STRICT ( integer)PHP のコード変更の提案を有効にして、コードの最高の相互運用性と上位互換性を確保します。 PHP 5 以降 ##4096
integer 捕捉できる致命的なエラー。これは、潜在的に危険なエラーが発生したが、PHP エンジンが不安定になる原因ではなかったことを示します。エラーがユーザー定義のハンドラーによって捕捉されない場合、E_ERROR となり、スクリプトは終了します。 ##8192
実行時通知。有効にすると、将来のバージョンで正しく動作しなくなる可能性があるコードについて警告が表示されます。 PHP 5.3.0 以降
E_USER_DEPRECATED(integer ) E_DEPRECATED と似ていますが、コード内で PHP 関数 trigger_error() を使用してユーザーによって生成されます。 #PHP 5.3.0 以降
##E_ALL # (整数)E_STRICT PHP 5.3.x では 30719、PHP 5.2.x では 6143、以前は 2047

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

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