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.

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() была языковой конструкцией, а не функцией, поэтому ее невозможно было вызывать как функцию переменной или с именованным аргументом.

Смотрите также