前回の記事では、PHPのエラーの種類とエラーレベルを詳しく紹介した「PHPのエラーの種類とエラーレベルを理解する」をご紹介しました。 PHP でエラー処理をカスタマイズする方法とエラーをブロックする方法を見てください。皆さんのお役に立てれば幸いです。
日常の開発ではエラーが避けられず、エラー処理関数として関数を指定することがありますが、PHPの処理関数にはカスタムエラーがあります。
<strong>#set_error_handler() <span style="font-size: 20px;"></span></strong>
##関数カスタム エラー処理関数# #PHP関数をエラー処理関数として指定するために使用される set_error_handler() 関数が提供されます。その構文形式は次のとおりです:
set_error_handler(自定义函数名 [, int $error_types = E_ALL | E_STRICT ])
このカスタム関数名の構文形式は次のとおりです:
error_handler(int 错误的级别 , string 错误的信息 [, string 发生错误的文件名 [, int 发生错误的行号 ]])
以前に定義されたエラー ハンドラーがある場合、返されるプログラム名は変更されたプログラムのプログラム名です。組み込みエラー ハンドラーの場合、返される結果は NULL です。無効なコールバック関数が指定された場合も NULL が返されます。
次に例を見て、エラー処理関数をカスタマイズし、それを使用してプログラム内のエラーを処理してみましょう。例は次のとおりです:
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); strpos(); ?>
#この関数を使用する際に注意する必要があるのは、このメソッドはエラー処理にのみ使用されるということです。間違った関数で実行すると、プログラムはエラーが発生した関数ステートメントの実行を継続するため、関数を終了するには die() 関数を使用する必要があります。
日常の開発では、プログラム内の例外を自動的にスローすることはできませんが、このとき set_error_handler() を使用してカスタマイズし、例外をエラーとして処理することもできます。例外を自動的にキャッチするためのエラー処理。
例は次のとおりです:
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); /* 触发异常 */ try { $a = 5/0;//程序会自动捕捉这个异常,并且由自定义函数来处理 echo $a; } catch(Exception $e) { echo $e->getMessage(); } ?>
出力結果:
PHP の開発プロセスでは、set_error_handler() によるエラー処理関数のカスタマイズによってエラーを処理するだけでなく、エラーをマスクすることもでき、場合によってはエラー マスクも必要になります。次に、エラーをシールドするためのいくつかの方法を列挙します。
<span style="font-size: 16px;"><strong></strong>---エラー制御演算子</span>
PHP では、エラー制御演算子 @ を式の前に置くと、式内に存在する可能性のあるエラーはブロックされます。
例は次のとおりです:
<?php $link = @mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('数据库连接失败!'); ?>出力結果:
関数を使用してエラーをシールドする##PHP PHP には多くのエラー レベルがあります。error_reporting() 関数を使用して、PHP が報告するエラーの種類を設定できます。関数の構文形式は次のとおりです:
error_reporting(设置错误级别)エラー レベルについては、こちらをご覧ください。これらについては、前回の記事「
<?php error_reporting(0); $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('数据库连接失败!'); ?>出力結果:
##display_errors
この方法は最も完全な方法です。最初の 2 つの方法は単一行または単一ファイルでのみ機能しますが、display_errors パラメータによるエラーのマスクはすべての PHP ファイルで機能します。どうするか、やってみよう。
まず、php.ini
(前回の記事「PHPでファイルをアップロードする方法?読めばわかる!」では、phpとiniの設定ファイルを削除する方法について関連知識を紹介しました)
例は次のとおりです。
この方法でエラーをブロックできます。
ご興味がございましたら、「PHP ビデオ チュートリアル 」をクリックして、PHP の知識をさらにご覧ください。
以上がPHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。