PHP エラー処理エラー報告レベル

エラーレポートレベル

エラータイプ

表示される最も一般的なエラーのスクリーンショット。この本はそれらを要約するのに役立ちます:

[マスターレベルエラータイプ] 最も一般的に使用されるエラーを3つのタイプに分けました:

エラーの種類説明
E_ERRORエラー、ファイルが直接中断されました
E_WARNING警告、問題は深刻です。ただし、下向きに実行され続けます
E_NOTICE ヒント、いくつかの小さな問題はプログラムには影響しません。構文解析エラーは、プロジェクトが定義されていない場合によく発生します
E_PARSE。解析エラーはパーサーによってのみ生成されます。
E_ALLすべてのエラー
E_STRICTコードの最高の相互運用性と上位互換性を確保するために、PHP によるコード変更の提案を有効にします。
E_DEPRECATED 有効にすると、将来のバージョンで正しく動作しなくなる可能性があるコードについて警告が表示されます。


上記のタイプの中で:

エラーが最も深刻であり、解決する必要があります。そうしないと、プログラムは実行を続行できません。

警告も非常に重要です。トングも解決しなければなりません。明らかに意図的なものであれば、対処する必要はありません。

注意 無視しても構いません。しかし、一部の企業では、プロジェクトの基準が特に高くなります。また、高水準の要件を伴うプロジェクトでも解決する必要があります。通知はPHPの実行効率に影響を与えるためです。通常、関数が未定義の場合などに発生します。

解析エラーは、解決する必要がある文法エラーとタイプミスを指します

は、すべてのタイプのすべてのエラーを表します

[レベルエラーのタイプを理解する] これらの 3 つのタイプ以外にも、理解する必要があるエラー項目があります:

エラーの種類エラーの説明
E_CORE_ERROR PHPの初期化起動プロセス中に発生した致命的なエラー。このエラーは E_ERROR に似ていますが、PHP エンジン コアによって生成される警告 (致命的ではないエラー) です。 E_WARNING に似ていますが、PHP エンジン コアによって生成されます。
E_COMPILE_ERROR致命的なコンパイル時エラー。 E_ERROR に似ていますが、Zend スクリプト エンジンによって生成されます。
E_COMPILE_WARNINGコンパイル時間の警告 (致命的ではないエラー)。 E_WARNING に似ていますが、Zend スクリプト エンジンによって生成されます
E_USER_ERRORユーザー定義のエラー
E_USER_WARNINGユーザー定義の警告
E_USER_NOTICE r 定義のヒント
E_USER_DEPRECATED 出力が低いユーザーに対する警告メッセージ。 E_DEPRECATED と似ていますが、コード内で PHP 関数trigger_error()を使用してユーザーによって生成されます。
E_RECOVERABLE_ERROR捕捉される可能性のある致命的なエラー。これは、潜在的に危険なエラーが発生したが、PHP エンジンが不安定になる原因ではなかったことを示します。


学習プロセスでは、上記のタイプを理解するだけです。基本的に遭遇することはないので、もし遭遇した場合はこの本やマニュアルを確認すればわかります。

error_reporting レポートエラータイプ

error_reporting はエラーレポートを指します。 php.iniにもそのようなパラメータがあります。このパラメータ。 PHP エンジンが記録、レポート、表示するエラーのタイプを決定します。

1. php.ini の error_reporting パラメーター。 error_reporting パラメータが 0 に設定されている場合。 PHP エンジン全体のエラーは表示、出力、または記録されません。次の章で説明するログには記録されません。

すべてのエラーを表示したい場合は、次のように記述できます:

error_reporting = E_ALL

プロンプトを除外してすべてのエラーを表示したい場合は、このパラメータを次のように記述できます:

error_reporting = E_ALL & ~ E_NOTICE

すべてのエラーを表示しますが、ヒント、互換性、および将来の互換性は除外されます。次のように記述できます:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

2. 場合によっては、php.ini ファイルを操作する権限がない場合があります。操作したい場合はどうすればよいですか?エラー報告を制御しますか?

xxxx.php ファイルの実行の開始時に、error_reporting() 関数を使用して目標を達成できます。

デモコードは次のとおりです:

<?php

//关闭了所有的错误显示
error_reporting(0);


//显示所有错误
//error_reporting(E_ALL);

//显示所有错误,但不显示提示
//error_reporting(E_ALL & ~ E_NOTICE);
?>

上記のコードを試して、意図的に間違ったコードを書いていないか確認してください。指定されたエラーが現在のファイルに表示されるかどうか。

[知識ポイントを拡張して理解する]: @ 記号は、以前に学習したエラーを表示しない単一行です。@ 記号は使用しないか、控えめに使用してください。

存在しないファイルを読み込んでみましょう。この PHP コードは実装プロセスを示しています:

<?php
//读取一个不存在的adsaf.txt文件,用@符抑制错误
@$fp = fopen('adsaf.txt','r');
?>

@ シンボルの PHP カーネルでの実装プロセスは次のとおりです。 学び続ける
||
<?php //关闭错误 error_reporting(0); //读取一个不存在的文件,显示错误 //显示错误 error_reporting(E_ALL & ~ E_NOTICE); ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜