ホームページ  >  記事  >  バックエンド開発  >  PHP 例外の種類

PHP 例外の種類

WBOY
WBOYオリジナル
2016-06-13 13:13:251186ブラウズ

PHP エラーの種類


1. プログラム自体のエラー

この種のエラーは、構文エラーやコンパイラーが解析できないなど、簡単に対処できるエラーです。これらのエラーはコンパイル時にコンパイルに合格しません。次の方法で見つけることができます。エラープロンプトが表示されます。ただし、 eval() を使用して実行されたコードでエラーが発生した場合、コンパイル中にエラーを見つけることはできません。コードが実行されてコンパイル中にエラーが発生するまで待つことしかできません。次のコードを実行すると、エラーが発生します。実行プロセスエラー:

<span style="font-size:18px;"><?php 
      echo "this will be echo to putty";
      eval("php error when parser");

?></span>
このエラーと他のコード エラーの違いは、出力される前のエコーであることです。コンパイルが通過せず、実行されないため、他のコード エラーについては出力はありません。


2、未定義のシンボル

PHP はコンパイル時にすべてのシンボル名、関数名などを完全に理解するわけではないため、PHP を実行すると、多くの変数、関数、その他の未知の名前に遭遇する可能性があります。

単なる未定義の定数または変数の場合、これは単なる通知フォームです。ただし、未定義の関数またはクラスが見つかった場合、プログラムは終了します。見つからないクラスに関しては、ユーザーが __autoload という関数を定義すると、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_ERROR

E_USER_WARNING

error_reporting(Integer) 関数を使用して、どのエラーが報告されるかを設定できます。たとえば、すべてのエラーは E_ALL として表現されます。通知を除くすべてのエラーは、E_ALL & ~E_NOTICE.

として表現できます。

display_errors (ブール値): この設定は、エラーを 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 です。

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