exit

(PHP 4, PHP 5, PHP 7, PHP 8)

exitステータスコードかメッセージを返して現在のスクリプトを終了する

説明

exit(string|int $status = 0): never

スクリプトの実行を終了します。 シャットダウン関数オブジェクトのデストラクタ は、exit() がコールされた場合にも実行されます。 ただし、finally ブロックは実行されません。

終了コード 0 は、そのタスクでプログラムが成功したことを表します。 他の値は、実行中に何らかのエラーが発生したことを表します。

exit() は特殊な関数です。 パーサーに専用のトークンがあるため、文として使用して(つまり、括弧なしで)、 デフォルトのステータスコードでスクリプトを終了させることができます。

警告

グローバルな exit() を無効にしたり、 名前空間つきの関数でシャドーイングすることはできません。

パラメータ

status
status が文字列の場合は、 この関数は終了直前に status を表示します。 PHP によって返される終了コードは 0 です。

statusint の場合は、 この関数は終了直前に status を表示します。

注意: 終了コードは 0 から 254 の範囲でなければならず、 終了コード 255 は PHP によって予約されているため使用できません。

警告

PHP 8.4.0 より前のバージョンでは、 exit() は PHP の標準的な 型の相互変換のセマンティクスに基づいておらず、 また、strict_types 宣言も適用されませんでした。

また、resourcearray を含む、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;

?>

注意

警告

PHP 8.4.0 より前は、 exit() は関数ではなく言語構造でした。 したがって、 可変関数名前付き引数 を使って関数を呼び出すことはできませんでした。

参考