phpでerror_handler設定

phpにてerror_handlerを使用した時のメモ

error_handlerは実行時にエラーが発生した時の処理を指定できる。
trigger_errorで投げたエラーに対する処理とか。

マニュアル->http://php.net/manual/ja/function.set-error-handler.php

定義済みエラー番号(マニュアル)->http://www.php.net/manual/ja/errorfunc.constants.php

*php-version:5.1.6*
[errorhandler.php]

<?php
    // error_handler設定処理
    // error発生時の処理を指定
    function error_handler($error_no, $error_msg, $error_file, $error_line) {
        print $error_no;
        switch ($error_no) {
        case E_WARNING :
            print "[$error_no]E_WARNING $error_msg\n";
            break;
        case E_NOTICE:
            print "[$error_no]E_NOTICE $error_msg\n";
            break;
        case E_USER_ERROR:
            print "[$error_no]E_USER_ERROR $error_msg\n";
            break;
        default:
           print "[$error_no]DEFAULT $error_msg\n";
        }
    }

    // error_handler設定
    set_error_handler('error_handler');
    // E_WARNING発生
    $i=5/0;
    // E_USER_ERROR発生
    trigger_error("error E_USER_ERROR", E_USER_ERROR);
?>

マニュアルにもあるが[E_ERROR][E_PARSE]などハンドリングできないエラーがあるので確認して使う。