【PHP入門】プログラムを終了する方法(exit/die)

PHPではexitを使用して、プログラムを終了することができます。

この記事では、

・exitとは?
・exitの使い方
・ループの中で処理を終了する

という基本的な内容から、

・exitでステータスを指定する方法
・dieとは?

などの応用的な使い方に関しても解説していきます。

今回はそんなexit関数を使用してプログラムを終了する方法について、わかりやすく解説します!

目次

exitとは

メッセージを出力して、現在のプログラムを終了するにはexit関数を使用します。

exitは以下のように記述します。

void exit([String $ステータス])

void exit([int $ステータス])

$ステータスには、終了時のステータスや、メッセージを出力します。

ステータスがint型の場合は指定した値が終了ステータスとして扱われます。int型の場合は終了ステータスは0から254の範囲で指定する必要があります。

ステータスの0は、プログラムが正常終了する場合に使用します。

また、exitはステータスを指定しないで[exit]のみで呼び出すこともできます。

なお、exitは返り値で値を返しません。

exitの使い方

以下にexitを使用して、プログラムを終了する方法を記述します。

<?php

$value = 10;

if ($value < 20){
  exit('プログラムを終了します');
}

echo $value;

?>
実行結果
プログラムを終了します

サンプルでは、if文の判定処理でvalueの値より20が大きかったら、exitでメッセージを出力して処理を終了しています。

このようにプログラムを明確に終了したいときに、exitを使用すると便利ですね!

ループ文の中で終了する

exitは、プログラムのどの位置からも指定することができます。

例えばfor文やforeach文などのループ処理の中で、処理を終了することも可能です。

<?php

$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];

foreach($fruits as $value){
  //一致したら処理を終了する
  if($value = 'banana'){
    exit('プログラムを終了します');
  }
}

?>
実行結果
プログラムを終了します。

ステータスを指定する

exitの具体的な使い方として、呼出した関数の中で処理の異常を検出した場合、予め定義しておいたエラーコードをコントロール側に返してプログラムを終了するといった使い方もできます。

以下に関数でファイル読み込み処理を行い、読込みが失敗したらエラーステータスをコントロール側に返して、終了処理を行う簡単なサンプルを記述します。

<?php

//ファイル読み込み処理
function FileRead($pass){

  //ファイルオープン
  if (!fopen($pass, 'r')){
    echo 'ファイル['.$pass.']を正常に読み込めません<br>';
    return 1;
  }
  /* 成功時の処理・・・ */
}

//ファイルパスを指定して関数を呼び出す
$file = 'sample/pass/sample-file.txt';
$ret = FileRead($file);

//ステータスが0以外だったら終了処理
if ($ret != 0){
  echo '異常終了:['.$ret.']';
  exit($ret);
}

?>
実行結果
ファイル[sample/pass/sample-file.txt]を正常に読み込めません
異常終了:[1]

サンプルでは、ファイルパスを指定して関数FileReadを呼出し、関数の中でファイルの読込み処理を行っています。

fopen関数でファイルの読込みを実行し、失敗したらエラーコード1をreturnで制御に返します。

制御側で戻り値のステータスを判断し、正常0以外だったらexitの引数にステータスを指定して、プログラムを終了しています。

このように関数の中でそのままexitするのではなく、関数の戻り値によって正常か異常か判断して、ステータスを制御に返してプログラムを終了するといった処理は実際によく行われます。

dieとは

die関数は、exit関数と同じくメッセージを出力してプログラムを終了するときに使用します。

die関数もexit関数も言語仕様的に違いはありません。したがってdieの記述方法はexitと同じです。

<?php

echo 'プログラムを開始します。<br>';

die('プログラムを終了します。');

echo 'この部分は出力されません';

?>
プログラムを開始します。
プログラムを終了します。

このようにdieもexitも違いはないため、どちらを使用するのが正しいということはありません。

しかし、CやJavaなどの主要な言語もプログラム終了時はexitを記述することがありますので、統一のためにexitを使用するのも良いでしょう。

まとめ

ここではexit関数によるプログラムの終了処理や実際によく使われる方法を説明し、exit関数と同じくプログラム終了時に使用するdie関数についても説明しました。

プログラムを明確に終了するときにexit関数はよく使われますので、この機会に覚えておきましょう。

もし、exit関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次