phpの処理を終了するにはexit;を使うといいのですが、念の為exit(1);にしたほうがいいというアドバイスをいただいたことがあります。
exit;でも普通に終了するのですが、C言語などで関数が終了したのをreturn 0;やreturn 1;などで制御することがあり、0は正常終了、1は異常終了を意味するためかと思います。
phpのWebアプリはphpを実行している実行主体があって、apacheならapacheのモジュール(だっけ)、ningxならばphp-fpmで動かしている。phpのWebアプリケーションがexit;で止まらなかったことが最近はまずないのですが、perl-cgiでWebアプリケーションの開発をやっていた時などに、httpdのプロセスが固まってしまったことがあります。まあ…昔、そんなことがあったなというぐらいですが。その時に、exit(1);としないとプロセスが残ってしまうことがありました。
プロセスが固まってしまうのは、結構致命的な問題なので…exit;ではなく、念の為にexit(1);を使用していたほうがいいのかもしれません。
※このように何らかのプログラム(多くは何らかのWebサーバとそれに関連したモジュール)によってPHPスクリプトが動かされているわけですが、そのプログラムに返却値として1や0を返さないとうまく動作しない可能性があるので、その可能性をしっかり考慮しておいたほうが丁寧ということです。
exit(0); // 正常終了
exit(1); // 異常終了
という意味づけも一緒にもたせることができますので、exit;よりも見た目にも分かりやすいコードと言えるのではないでしょうか。
※(…ただ1の意味を知らないと意味付けになりませんが)それに処理系によって1と0は分かれる(逆の意味を持つ)かもしれませんし、そもそも正常終了なのになぜ途中終了するのか?という気もしますが汗。そこのところには、深くは触れないでおきます。
コメント