Exit: примеры (PHP)

Использование exit для завершения скриптов в PHP
Раздел: Управление выполнением
exit(string|int $status = ?): void
Описание функции exit

Функция exit() в PHP используется для немедленного завершения выполнения скрипта. Она также может называться die(), так как является её псевдонимом. Функция применяется в ситуациях, когда необходимо прервать работу программы из-за критической ошибки, отсутствия требуемых данных или для предотвращения выполнения дальнейшего кода.

Аргументы функции

Функция принимает один необязательный аргумент:

  • $status (string|int) – может быть строкой сообщения или целочисленным кодом завершения. Если передан integer в диапазоне 0-254, он будет возвращён как код завершения процесса. Сообщение выводится в стандартный поток вывода.
Короткие примеры использования
Завершение без аргументов
<?php
echo 'Это сообщение будет выведено';
exit();
echo 'Это сообщение не будет выведено';
?>
Это сообщение будет выведено
Завершение с сообщением
<?php
exit('Критическая ошибка. Скрипт остановлен.');
echo 'Этот код не выполнится';
?>
Критическая ошибка. Скрипт остановлен.
Завершение с кодом статуса
<?php
// В консоли можно проверить код возврата через echo $?
exit(1);
?>
Похожие функции в PHP
  • die() – Полный аналог функции exit, используется идентично.
  • trigger_error() – Генерирует пользовательское сообщение об ошибке, но не завершает выполнение скрипта, если не указан уровень ошибки E_USER_ERROR.
  • throw – Исключения позволяют корректно обрабатывать ошибки, передавая управление блоку catch, что более предпочтительно в объектно-ориентированном коде для контроля потока выполнения.
Аналоги в других языках

Exit в Python

Функция sys.exit() из модуля sys, принимает необязательный аргумент status.

import sys
print('Сообщение перед выходом')
sys.exit('Ошибка')
print('Не выполнится')
Сообщение перед выходом
Ошибка

Exit в Javascript

В среде Node.js используется process.exit(), в браузерном JavaScript аналога нет.

console.log('До выхода');
process.exit(1);
console.log('После выхода');
До выхода

Exit в MySQL

Команда LEAVE используется для выхода из метки цикла или блока BEGIN...END в хранимых процедурах.

Типичные ошибки
Использование в конструкциях, требующих возврата значения
<?php
function getValue() {
    return exit('Выход'); // Функция не вернёт значение
}
echo getValue(); // Ничего не выведет, скрипт завершится
?>
Выход
Непонимание кодов завершения
<?php
exit(256); // Код будет обрезан до 0 (256 % 256)
?>
Изменения в PHP 8

В PHP 8 не было внесено значительных изменений в поведение функции exit. Однако в целом в PHP 8 усилилась строгость типизации, что может косвенно повлиять на передаваемые аргументы. Функция exit по-прежнему является языковой конструкцией.

Расширенные примеры
Использование в обработчике ошибок
Пример php
<?php
set_error_handler(function($errno, $errstr) {
    exit("Перехваченная ошибка: $errstr");
});
echo 10 / 0; // Вызовет деление на ноль
?>
Перехваченная ошибка: Division by zero
Завершение с кодом в консольном скрипте
Пример php
<?php
// script.php
if (!isset($argv[1])) {
    exit(1); // Возвращаем код ошибки в консоли
}
echo "Аргумент: {$argv[1]}";
exit(0); // Успешное завершение
?>
# В терминале
$ php script.php
$ echo $?
1
Прерывание цикла и выхода из скрипта
Пример php
<?php
while (true) {
    $value = rand(1, 100);
    if ($value > 90) {
        exit("Сгенерировано число $value. Выход.");
    }
}
?>

PHP exit function comments

En
Exit Output a message and terminate the current script