0

おそらくすでにご存知のように、phpのエラーハンドラは、を使用する関数に置き換えることができます。

set_error_handler()

私は独自のエラーハンドラーを作成していますが、すべてのエラーが発生したときに何かを実行したいと思います。

現在のところ、カスタムエラー処理機能はエラーが発生するたびに実行されます。

それで、それが最後のエラーであるかどうかを知る方法は何でしょうか。それで、htmlスクリプトを実行できます。

4

2 に答える 2

1

私はあなたがregister_shutdown_function()を探していると思います:

スクリプトの実行が終了した後、またはexit()が呼び出された後に実行されるコールバックを登録します。

ただし、コールバック関数がエラーxDをトリガーしないことを確認することをお勧めします

于 2013-03-14T17:26:38.277 に答える
0

すべてのエラーを一度に処理したい場合(つまり、致命的なエラーの前に発生したエラーの可視性が失われるため、これはお勧めしません)、sutdown関数を登録し、エラーハンドラーを介してデータを蓄積します。シャットダウン機能はエラーを報告します...

<?php

$mylog="started\n"

function logit() {
    global $mylog;
    if ($mylog) {
       file_put_contents(tmpnam('/var/log/php', 'err');
    }
}

register_shutdown_function('logit');
function whoops()
{
    global $mylog;
    $mylog.="something bad happenned\n";
}
set_error_handler('whoops');
....

(これはすべて自動追加ファイルで実行できます)

于 2013-03-14T17:33:47.043 に答える