本ページにはプロモーションが含まれている場合があります

【PHP】処理を止めるreturnとexitの違いや使い分けについて

関数内でプログラム処理を止める方法としてexitやreturnがありますが、今回はその違いや使い分けについて紹介したいと思います。

スポンサーリンク

exitとは

単語の意味の通り、そこから出ていく処理になります。
関数内で、exitより後の処理は行われず、そこで完全に処理が停止されるため呼び出し元にも戻りません。戻り値もありません。

下記は、message_disp()で関数を呼び出していますが、関数内のexitで処理が停止するため呼び出し元には戻らず、その後のechoも実行されません。

//関数
function message_disp() {
  exit;
  echo 'にゃまん素敵な研究所'; // <--- 実行されない。
}

//呼び出し元
message_disp();
echo 'にゃまんシステム研究所'; // <--- 実行されない。

returnとは

exitと同じように関数内でreturnより後の処理は行われませんが、単語の通り呼び出し元に戻されます。
このため、関数内での処理はそこで停止しますが、呼び出し元に戻るため、呼び出し元で処理が継続されます。
returnに戻り値を指定すれば、呼び出し元に戻り値も返されます。

下記では、returnで関数内の処理は行われませんが、呼び出し元の処理は引き続き実行されます。

//関数
function message_disp() {
  return;
  echo 'にゃまん素敵な研究所'; // <--- 実行されない。
}

//呼び出し元
message_disp();
echo 'にゃまんシステム研究所'; // <--- 実行される。

使い分けについて

例えば、WordPressのfunction.phpの関数でexitを使った場合、exitで処理が完全に止まってしまうため、ページが途中までしか表示されなくなったり、画面が真っ白になる場合があります。
上記のような場合は、returnを使えばメインの処理は継続されるため、使う箇所にもよりますが画面真っ白は避けられます。

exitはどのような時に使うかですが、例えば決済処理やセキュリティで意図しない異常が発生し、これ以上処理を進めたくない場合などに使う事が多いようです。

下記のように括弧付きで指定すると、exitで停止した時にメッセージを表示させることができます。

exit('にゃまんシステム研究所に異常が発生しました');
スポンサーリンク