exit
(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-скрипта.
Примеры
Пример #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;
?>