- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php include内のエラー処理)
php include内のエラー処理
このQ&Aのポイント
- phpのプログラム中で別のファイルを実行する際に、そのファイルにエラーがあると全体の処理が停止してしまう場合、エラーを検知して本体プログラム内で適切なエラー処理を行うことは可能でしょうか?
- 「include('a.php');」のように別のファイルを実行する場合、a.phpに構文エラーがあると全体の処理が中断されます。しかし、本体プログラム内でa.phpのエラーを検知し、適切なエラー処理を行う方法はありますか?
- phpのプログラムで別のファイルを実行する際に、実行するファイルに構文エラーがあると全体の処理が停止してしまいます。しかし、本体プログラム内でエラーを検知し、適切なエラー処理を行うことは可能なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
include は指定したファイルのプログラムを「別途」実行している訳ではありません。 あくまでも include を実行したファイルの一部としてファイルを結合した上で処理が行われますので、構文エラーなどは処理できません。 set_error_handler を使えばある程度はエラーを捉えて処理が可能かもしれませんが、構文エラーなど基本的なエラーは対応不能です。 どうしても別モノとして処理したければ exec 等で処理する事になりますが、セキュリティ上はあまりいいやり方とは言えませんね。 かつては php_check_syntax なんて関数もありましたが、問題があったようで廃止されています。
お礼
ご回答ありがとうございます。 その後、調べてみたところ、今回の用途だと、includeではなく、evalを使うことで解決できそうです。 ありがとうございました。