PHPの致命的なエラーが発生した場合(AJAXリクエストを処理するため)、HTTPステータスヘッダーを500に設定する方法を見つけようとしていました。
関連する質問:致命的な例外が発生したときに php が 500 を返すようにするにはどうすればよいですか?
私register_shutdown_function
の意見では、これはエレガントなソリューションではありません。
以下のコードは良い解決策ですか?
致命的なエラーに対して常に機能しますか?
echo
アプリケーションコードは最後の呼び出しまで出力がなく、関数への呼び出しはないと仮定しますflush()
(呼び出し後、ヘッダーの変更を防ぎます)。
<?php
set_status_code(500);
// ...
// (application code with no output)
// Application didn't crash up to this point,
// so we set http status code 200.
set_status_code(200);
echo $outputBuffer;
flush()
望ましい動作を妨げる唯一の機能はありますか?