PHP エラーハンドリング

エラーハンドラ関数

function エラーハンドラ関数名( $errno, $errstr, $errfile, $errline ) {

    // ここにエラーへの対処内容を書く

    return TRUEまたはFALSE;
}
引数 意味
$errno エラーレベルの内部値(例:E_ERRORなら1、E_WARNINGなら2)
$errstr エラーメッセージ
$errfile エラーが発生したファイル名
$errline エラーが発生した行番号

戻り値(詳細は14章)としてTRUE・FALSEのどちらを返すかで挙動が変わります。

戻り値 意味
TRUE PHP標準のエラーハンドラを利用しない。つまり、エラーが画面に表示されなくなる。
FALSE PHP標準のエラーハンドラを利用する。独自に定義したエラーハンドラ関数を実行した後に、通常のエラーレポーティングが行われる。

エラーハンドラの登録

set_error_handler('エラーハンドラ関数名');

PHPプログラム(PHPファイル)の冒頭でエラーハンドラ関数を登録しましょう。すると、どこでエラーが発生したときでも、独自のエラーハンドラ関数の処理が実行されます。

ただし致命的なエラーには対処できず、独自のエラーハンドラ関数は実行されません。エラーハンドラは警告や注意など、見逃しやすいエラーに対処するのに便利な仕組みです。