Exit: примеры (PHP)
exit(string|int $status = ?): voidФункция exit() в PHP используется для немедленного завершения выполнения скрипта. Она также может называться die(), так как является её псевдонимом. Функция применяется в ситуациях, когда необходимо прервать работу программы из-за критической ошибки, отсутствия требуемых данных или для предотвращения выполнения дальнейшего кода.
Функция принимает один необязательный аргумент:
- $status (string|int) – может быть строкой сообщения или целочисленным кодом завершения. Если передан integer в диапазоне 0-254, он будет возвращён как код завершения процесса. Сообщение выводится в стандартный поток вывода.
<?php
echo 'Это сообщение будет выведено';
exit();
echo 'Это сообщение не будет выведено';
?>Это сообщение будет выведено
<?php
exit('Критическая ошибка. Скрипт остановлен.');
echo 'Этот код не выполнится';
?>Критическая ошибка. Скрипт остановлен.
<?php
// В консоли можно проверить код возврата через echo $?
exit(1);
?>- 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 не было внесено значительных изменений в поведение функции exit. Однако в целом в PHP 8 усилилась строгость типизации, что может косвенно повлиять на передаваемые аргументы. Функция exit по-прежнему является языковой конструкцией.
<?php
set_error_handler(function($errno, $errstr) {
exit("Перехваченная ошибка: $errstr");
});
echo 10 / 0; // Вызовет деление на ноль
?>Перехваченная ошибка: Division by zero
<?php
// script.php
if (!isset($argv[1])) {
exit(1); // Возвращаем код ошибки в консоли
}
echo "Аргумент: {$argv[1]}";
exit(0); // Успешное завершение
?># В терминале $ php script.php $ echo $? 1
<?php
while (true) {
$value = rand(1, 100);
if ($value > 90) {
exit("Сгенерировано число $value. Выход.");
}
}
?>