ホームページ  >  記事  >  バックエンド開発  >  PHPでエラーメッセージを取得する方法

PHPでエラーメッセージを取得する方法

PHPz
PHPzオリジナル
2023-04-04 09:12:08445ブラウズ

PHP は、習得が容易で柔軟性が高い、広く使用されているサーバーサイド スクリプト言語です。ただし、他のプログラミング言語と同様に、PHP にも構文エラーや論理エラーなどの欠点やエラーがあります。開発およびデバッグのプロセスでは、これらのエラー メッセージをタイムリーに取得して解決することが重要です。この記事ではPHPでエラー情報を取得する方法を紹介します。

1. PHP エラー メッセージを有効にする

PHP では、デフォルトではエラー メッセージが出力されないため、エラー メッセージの出力を有効にするように php.ini ファイルを設定する必要があります。 php.ini ファイルを開くと、次の 2 つのキー行が見つかります。

display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Change display_errors = Offdisplay_errors = On に変更し、 を変更します。 error_reporting 行を次のように変更します:

error_reporting = E_ALL

これにより、すべてのエラー レベルを含むすべてのエラー レポートが有効になります。エラー情報をオンにすると、警告、プロンプト、致命的なエラーなど、PHP スクリプト内のすべてのエラーが Web ページに出力されます。

2. 最新の PHP エラー メッセージを取得する

PHP スクリプトでは、PHP 独自の error_get_last() 関数を使用して最新のエラー メッセージを取得できます。この関数は、エラー情報の種類、メッセージ、ファイル パスなどを含む配列を返します。

これは例です:

<?php
echo $test;
print_r(error_get_last());
?>

上記のコードでは、$test 変数が定義されていないため、致命的なエラーが発生します。このエラー メッセージは最後のエラーとして保存され、error_get_last() 関数を通じて取得されます。出力結果は次のとおりです:

Array
(
    [type] => 8
    [message] => Undefined variable: test
    [file] => /var/www/html/test.php
    [line] => 2
)

3. エラー ハンドラーを登録します

error_get_last() 関数の使用に加えて、エラー ハンドラーを登録することによってエラー情報を取得することもできます。 PHP には、エラー発生時の PHP の動作をカスタマイズするための set_error_handler() 関数が用意されています。この関数は、捕捉されたエラーの処理に使用できる関数の名前をパラメータとして受け取る必要があります。

以下は例です:

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
    echo "Error: [$errno] $errstr - $errfile:$errline";
}

set_error_handler("error_handler");

echo $test;
?>

上記のコードでは、エラーを処理するために error_handler() という名前の関数を定義します。次に、関数名を set_error_handler() 関数に渡して登録します。変数 $test が定義されていない場合、致命的なエラーが発生します。エラー ハンドラーはエラーをキャッチし、次の結果を出力します:

Error: [8] Undefined variable: test - /var/www/html/test.php:7

IV. 結論

PHP スクリプトの開発プロセスでは、エラー情報をタイムリーに取得して処理することが重要です。 。 PHP エラー メッセージを有効にすることから、最新の PHP エラー メッセージを取得すること、登録されたエラー ハンドラーを使用することまで、さまざまな方法は、PHP 開発におけるエラーの処理とデバッグを改善するのに役立ちます。

以上がPHPでエラーメッセージを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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