ホームページ  >  記事  >  バックエンド開発  >  PHPのエラーの種類は何ですか

PHPのエラーの種類は何ですか

藏色散人
藏色散人オリジナル
2020-08-20 09:54:443551ブラウズ

php のエラーの種類は次のとおりです: 1. プログラム自体のエラー; 2. 未定義のシンボル; 3. オペレーティング システムによる違い; 4. PHP 設定の違い; 5. SAPI の違い; 6. 実行エラー; 7. PHP エラー; 8. エラー ハンドラーを定義します。

PHPのエラーの種類は何ですか

推奨: 「PHP ビデオ チュートリアル

PHP のエラー タイプ

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

この種のエラーは、構文エラーやコンパイラが解析できないなど、比較的対処が容易なエラーであり、コンパイルに合格しません。コンパイル中に、エラー プロンプトに従って特定のエラー コードを見つけることができます。ただし、 eval() を使用して実行されたコードでエラーが発生した場合、コンパイル中にエラーを見つけることができません。コードが実行されてコンパイル中にエラーが発生するまで待つことしかできません。次のコードを実行すると、エラーが発生します。実行プロセス。エラー:

<?php 
   echo "this will be echo to putty";
   eval("php error when parser");
 
?>

このエラーは、出力される前にエコーが発生するという点で他のコード エラーとは異なります。コンパイルが通過せず、実行されないため、他のコード エラーについては出力はありません。

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:这个错误级别是唯一不包含在E_ALL常量中的,为了让PHP4到PHP5的迁移更加容易。
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(boolean):这个设置控制错误是否作为PHP输出的一部分显示出来。
log_errors(boolean),这个设置控制错误是否记录。日志的地址是通过error_log(String)设置决定的。默认情况下,错误被记录到WEB服务器的错误日志中。
html_errors(boolean):设置控制是否在错误信息中采用HTML格式 。

6、エラー ハンドラーの定義

set_error_handler(error_handle_function,error_types) を呼び出してエラー ハンドラーを指定できます。

function customError($errno, $errstr, $errfile, $errline)
 { 
 echo "<b>Custom error:</b> [$errno] $errstr<br />";
 }
set_error_handler("customError"); // 默认为所有的错误,就是E_ALL.
など

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

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