1. プログラム自体のエラー
この種のエラーは、構文エラーやコンパイラーが解析できないなど、簡単に対処できるエラーであり、コンパイル中にコンパイルに合格しません。エラーに応じて特定のエラー コードを見つけることができます。プロンプトを表示します。ただし、 eval() を使用して実行されたコードでエラーが発生した場合、コンパイル中にエラーを見つけることはできません。コードが実行されてコンパイル中にエラーが発生するまで待つことしかできません。次のコードを実行すると、エラーが発生します。実行プロセスのエラー:
[php] plaincopy を表示
echo "これはパテへのエコーになります";
eval("パーサー時のphpエラー");
?>
このエラーと他のコード エラーの違いは、出力される前のエコーであることです。コンパイルが通過せず、実行されないため、他のコード エラーについては出力はありません。
2. 未定義のシンボル
PHP はコンパイル時にすべてのシンボル名、関数名などを完全に理解するわけではないため、PHP を実行すると、多くの変数、関数、その他の未知の名前に遭遇する可能性があります。
3、普遍的なエラー
3.1 オペレーティングシステムによる違い
特定のプラットフォームでのみ使用できる一部の PHP 関数。
特定のプラットフォームでは利用できない一部の PHP 関数。
プラットフォームによって若干異なるいくつかの PHP 関数。
ファイル名のパス構成要素を区別する文字。
外部プログラムまたはサービスは、すべてのプラットフォームで利用できるわけではありません。
3.2 PHP 設定の違い
たとえば、magic_quotes_gpc オプションを設定します。このオプションが有効になっている場合、PHP はすべての外部データにスラッシュを追加します。このとき、このオプションがオンになっていない別のサーバーにプログラムを移植すると、ユーザー入力に問題が発生します。同様の違いに対処する方法は、PHP コードをチェックし、ini_get() 関数を通じてオプションが有効になっているかどうかを確認し、統一した調整を行うことです。
register_globals: この設定は、PHP が GET、POST、Cookie、環境変数、またはサーバー変数をグローバル変数として導入するかどうかを決定します。一般的には避けられます。
allow_url_fopen: このオプションを false に設定すると、URL ファイルを操作する機能がオフになります。
3.3 SAPI の違い
4、実行エラー
ハードディスクデータやネットワーク操作、データベース呼び出しを行う際に、PHP 自体以外の要因によって引き起こされるエラーなど。
5、PHPエラー
PHP のエラー メカニズムは、すべての PHP 組み込み関数で使用され、通常、この単純なメカニズムは、いくつかの基本的なエラー関連情報を含むエラー メッセージを出力します。
エラーレベルは次のように分類されます:
E_ERROR: 重大なエラー。
E_WARNING: 最も一般的なエラーのタイプ。
E_PARSE: コンパイル中に解析エラーが発生しました。
E_STRICT: PHP4 から PHP5 への移行を容易にするために、このエラー レベルは E_ALL 定数に含まれない唯一のエラー レベルです。
E_NOTICE: 実行中のコードが未知の何かを動作させている可能性があることを示します。
E_CORE_ERROR: 拡張機能の起動失敗などが原因です。
E_COMPILE_WARNING: コンパイル中に表示される警告で、推奨されない構文情報をユーザーに伝えます。
E_COMPILE_ERROR: コンパイル エラー。
E_USER_エラー
E_USER_警告
error_reporting(Integer) 関数を使用して、どのエラーが報告されるかを設定できます。たとえば、すべてのエラーは E_ALL として表現され、通知を除くすべてのエラーは E_ALL & ~E_NOTICE として表現できます。
display_errors(boolean): この設定は、エラーを PHP 出力の一部として表示するかどうかを制御します。
log_errors(boolean)、この設定はエラーをログに記録するかどうかを制御します。ログのアドレスは、error_log(String) 設定によって決まります。デフォルトでは、エラーは WEB サーバーのエラー ログに記録されます。
html_errors(boolean): エラー メッセージで HTML 形式を使用するかどうかを制御するように設定します。
6、エラーハンドラーを定義する
set_error_handler(error_handle_function,error_types) を呼び出してエラー ハンドラーを指定できます。
など
関数customError($errno, $errstr, $errfile, $errline){
echo "カスタム エラー: [$errno] $errstr
}
set_error_handler("customError"); // デフォルトはすべてのエラーです。これは E_ALL です。