【PHP】die関数の使い方を解説!exitとの違いは?

PHPプログラミングでは、die関数を活用することで無駄な処理を減らすことができ、保守性の高いソースコードを書けるようになります。

そこで今回は、die関数の使い方について解説していきます。die関数を使ったソースコードの書き方や活用方法などについても紹介しているので、この機会にぜひご覧ください。

PHPのdie関数とは

PHPのdie関数とは、スクリプトを終了させる関数です。
die関数の書き方は、次の通りです。

die関数の引数で指定するステータスは、文字列も数値も指定可能です。
引数に文字列を指定した場合は、スクリプトが終了する前に文字列を出力します。一方、引数に数値を指定した場合は、スクリプトの終了コードになるため、スクリプトの戻り値として扱われます。

exit関数との違いは?

前述したdie関数の解説を読んだ人の中には、「exit関数と同じ」だと感じた人もいるでしょう。実は、die関数とexit関数は全く同じ機能を持つ関数です。

他のプログラミング言語を学んだ経験がある人にとっては、exit関数の方が認知されています。exit関数を使う方が一般的かもしれませんね。

PHPでdie関数を使ったソースコードの書き方

それでは、実際にdie関数を使ったPHPのソースコードサンプルをいくつか紹介していきます。

die関数を上手く使えば、ソースコードの可読性を飛躍的に向上させることができます。紹介するのは使用例のほんの一部ですが、これらを参考にプログラミングの設計を見直すのも良いかもしれません。

die関数のステータスに文字列を指定する

die関数の引数に文字列を指定することで、PHPスクリプト終了時にメッセージを出力することができます。

実行結果
>php sample.php
PHPスクリプト終了

上記サンプルコードでは、die関数の引数として、文字列を指定したので、ステータスである「PHPスクリプト終了」を出力して、スクリプトを強制終了しました。

スクリプトは強制終了されたため、die関数以降に記述した処理が実行されることはありませんでした。

die関数のステータスに数値を指定する

die関数の引数に数値を指定することで、スクリプトの終了コードにすることができます。

実行結果
>php sample.php
>echo %errorlevel%
1

上記サンプルコードでは、die関数の引数として数値を指定したので、スクリプトを強制終了して、戻り値として「1」を返します。

なお、文字列を指定した場合とは違い、ステータスの出力は行われません。もちろん、スクリプトは強制終了されるため、die関数以降に記述した処理が実行されることもありません。

分岐条件別にdie関数のステータスを指定する

分岐条件別にdie関数に違うステータスを指定し、PHPスクリプトの強制終了したい場合は、各分岐条件別にdie関数を使用しましょう。

実行結果
>php sample.php
重大なエラー発生中

上記サンプルコードでは、変数err_numの数値に合わせて、異なるステータスを出力してスクリプトを強制終了しています。

状況に合わせてdie関数のステータスを指定する

基本的に、PHPスクリプトの途中でdie関数を使われるのは、スクリプト内の処理に、何かしらの問題が発生している状況であるといえます。

die関数の引数には、文字列を指定することもできますし、数値を指定することもできます。状況に合わせたステータスを指定した上で、die関数でスクリプトを強制終了させましょう。

実行結果
>php sample.php
エラー発生中

上記サンプルコードでは、変数err_numに0以外が格納していた場合、エラーが発生している旨を出力して、PHPスクリプトを強制終了しています。

一方、変数err_numに0が格納されていた場合には、スクリプトが正常に終了したことを伝えるために、戻り値として「0」を返します。

状況に合わせてdie関数の戻り値を指定する

die関数を使いPHPスクリプトの途中で強制終了させる場合、戻り値を返すことで他のシステムに対して、スクリプトが途中終了した原因を知らせることができます。

メッセージ出力が必要であれば、別の関数を使う方法もあります。

実行結果
>php sample.php
重大なエラー発生中
>echo %errorlevel%
5

上記サンプルコードでは、分岐別に異なる戻り値を返しています。このsample.phpを実行したシステムは、スクリプトの戻り値を確認して、正常に動作が終了したかどうかを確認できます。

PHPでdie関数を活用する方法

PHPプログラミングでdie関数を活用するには、スクリプトの使い方によって指定するステータスを変えると良いでしょう。

例えば、PHPスクリプトを単体で使うのであれば、die関数の引数には、文字列を指定した方が結果がわかりやすくて良いでしょう。

一方、システムの中の一部として使用されるPHPスクリプトであれば、die関数の引数には数値を指定して、エラーメッセージの出力などは他のプログラムなどで行うのが良いでしょう。

まとめ

PHPプログラミングで使えるdie関数は、引数に指定したステータスを返し、スクリプトを強制終了させる関数です。exit関数と同じ機能を持っているので、どちらを使っても問題ありません。

die関数の引数は、文字列と数値のどちらでも指定可能です。文字列の場合は、メッセージを出力し、数値の場合は戻り値として返します。どちらを返すかは、用途に合わせて選択するようにしましょう。

die関数を上手く使いこなせば、保守性の高いソースコードを作ることができます。die関数を活用して、無駄な処理をできるだけ減らすようにしましょう。