PHP set_error_handler() 関数

PHP エラー・リファレンス

set_error_handler()関数で、ユーザ定義のエラーハンドラ関数を設定し、エラーをトリガ(trigger_error()で)します:

<?php
// A user-defined error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline) {
    echo "<b>Custom error:</b> [$errno] $errstr<br>";
    echo " Error on line $errline in $errfile<br>";
}

// Set user-defined error handler function
set_error_handler("myErrorHandler");

$test=2;

// Trigger error
if ($test>1) {
    trigger_error("A custom error has been triggered");
}
?>

上のコードの出力は、次の通り:

Custom error: [1024] A custom error has been triggered
Error on line 14 in C:\webfolder\test.php


定義と用法

set_error_handler() 関数は、ユーザ定義エラーハンドラ関数を設定します。

注: 標準のPHPエラーハンドラは、この関数を使用すると完全にバイパスされます。 ユーザ定義エラーハンドラは、die()でスクリプトを必要に応じて終了する必要があります。

注:スクリプトが実行される前にエラーが発生した場合、 カスタムエラーハンドラはその時点で登録されていないため使用できません。


構文

set_error_handler(errorhandler,E_ALL|E_STRICT);

パラメータ 説明
errorhandler 必須。エラー時に実行する関数名を指定する
E_ALL|E_STRICT 任意。ユーザ定義のエラーを表示するエラー報告レベルを指定する。 デフォルトは "E_ALL"

技術内容
返り値: 前に定義されたエラーハンドラを含む文字列を返します
PHP バージョン: 4.0.1+
PHP 変更歴 PHP 5.5: パラメータ errorhandler に NULL を渡せるようになりましたL
PHP 5.2: $php_errormsg の内容を設定するため、エラーハンドラは必ず FALSE を返さなければなりません

PHP エラー・リファレンス