(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Завершает выполнение текущего скрипта с кодом состояния или сообщением
Функция завершает выполнение скрипта.
Функции завершения работы скрипта
и деструкторы объекта
выполнятся, даже если вызвали функцию exit
.
Однако блоки finally
не выполнятся.
Код выхода 0
указывает, что программа успешно выполнила
задания.
Другое значение указывает на ошибку, которая возникла при выполнении программы.
Функция exit() не похожа на другие функции, поскольку в парсере для неё выделили отдельный токен, поэтому функцию разрешается вызывать без круглых скобок — как инструкцию завершения скрипта с кодом статуса по умолчанию.
Функцию невозможно отключить или создать в пространстве имён функцию, которая затеняет глобальную функцию exit().
status
status
непосредственно перед выходом,
если в аргументе status
передали строку.
Значение кода выхода, которое возвращает PHP, равно 0
.
PHP вернёт код выхода, который указали в аргументе status
,
если в параметр status
передали значение с типом int.
Замечание: Параметр принимает коды выхода в диапазоне от
0
до254
, код выхода255
зарезервировали для PHP, поэтому этот код нельзя указывать.
До PHP 8.4.0 языковая конструкция exit() не следовала стандартной
семантике жонглирования типами
и не учитывала декларацию
strict_types
.
Значения, которые не принадлежали типу int, приводились к типу string, включая значения с типом resource и array. С PHP 8.4.0 функция следует стандартной семантике жонглирования типами и выбрасывает ошибку TypeError при передаче недопустимых значений.
Функция не возвращает значение, поскольку завершает выполнение PHP-скрипта.
Версия | Описание |
---|---|
8.4.0 |
Языковая конструкция exit() стала полноценной функцией,
поэтому функция следует
семантике жонглирования типами,
на неё влияет декларация
strict_types ,
функцию разрешили вызывать с именованными аргументами и быть
функцией переменной.
|
Пример #1 Базовый пример завершения скрипта функцией exit()
<?php
// Стандартный выход из программы
exit();
exit(0);
// Выход из программы с кодом ошибки
exit(1);
?>
Пример #2 Пример выхода из программы функцией exit() со строкой (string)
<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("невозможно открыть файл ($filename)")
;
?>
Пример #3 Функции завершения скрипта и деструкторы выполняются независимо
<?php
class Foo
{
public function __destruct()
{
echo 'Деструктор: ' . __METHOD__ . '()' . PHP_EOL;
}
}
function shutdown()
{
echo 'Завершить: ' . __FUNCTION__ . '()' . PHP_EOL;
}
$foo = new Foo();
register_shutdown_function('shutdown');
exit();
echo 'Эта строка не выведется.';
?>
Результат выполнения приведённого примера:
Shutdown: shutdown() Destruct: Foo::__destruct()
Пример #4 Пример выполнения exit() как инструкции
<?php
// Стандартный выход из программы с кодом выхода 0
exit;
?>
До PHP 8.4.0 exit() была языковой конструкцией, а не функцией, поэтому ее невозможно было вызывать как функцию переменной или с именованным аргументом.