(PHP 4, PHP 5, PHP 7, PHP 8)
exit — ステータスコードかメッセージを返して現在のスクリプトを終了する
スクリプトの実行を終了します。
シャットダウン関数
や オブジェクトのデストラクタ
は、exit() がコールされた場合にも実行されます。
ただし、finally
ブロックは実行されません。
終了コード 0
は、そのタスクでプログラムが成功したことを表します。
他の値は、実行中に何らかのエラーが発生したことを表します。
exit() は特殊な関数です。 パーサーに専用のトークンがあるため、文として使用して(つまり、括弧なしで)、 デフォルトのステータスコードでスクリプトを終了させることができます。
グローバルな exit() を無効にしたり、 名前空間つきの関数でシャドーイングすることはできません。
status
status
が文字列の場合は、
この関数は終了直前に status
を表示します。
PHP によって返される終了コードは 0
です。
status
が int の場合は、
この関数は終了直前に status
を表示します。
注意: 終了コードは
0
から254
の範囲でなければならず、 終了コード255
は PHP によって予約されているため使用できません。
PHP 8.4.0 より前のバージョンでは、 exit() は PHP の標準的な
型の相互変換のセマンティクスに基づいておらず、
また、strict_types
宣言も適用されませんでした。
また、resource や array を含む、int 型以外の値は string にキャストされていました。 PHP 8.4.0 以降は、通常の型の相互変換が適用され、無効な値に対しては TypeError をスローします。
この関数は PHP スクリプトを終了するため、値を返すことはありません。
バージョン | 説明 |
---|---|
8.4.0 |
exit() は言語構造から正式な関数になったので、
通常の
型の相互変換
に従い、
strict_types
宣言も適用されるようになりました。また、名前付き引数や
可変関数
によって呼び出すこともできるようになりました。
|
例1 exit() の基本的な使用例
<?php
// exit program normally
exit();
exit(0);
// exit with an error code
exit(1);
?>
例2 exit() にstringを渡す例
<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
?>
例3 シャットダウン関数やデストラクタが実行される例
<?php
class Foo
{
public function __destruct()
{
echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL;
}
}
function shutdown()
{
echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL;
}
$foo = new Foo();
register_shutdown_function('shutdown');
exit();
echo 'これは出力されません。';
?>
上の例の出力は以下となります。
Shutdown: shutdown() Destruct: Foo::__destruct()
例4 文としての exit()
<?php
// exit program normally with exit code 0
exit;
?>