php прекратить выполнение скрипта
exit — Выводит сообщение и прекращает выполнение текущего скрипта
Описание
Прекращает выполнение скрипта. Функции отключения и деструкторы объекта будут запущены даже если была вызвана конструкция exit.
Список параметров
Если параметр status задан в виде строки, то эта функция выведет содержимое status перед выходом.
Если параметр status задан в виде целого числа ( integer ), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 0 до 254, статус выхода 255 зарезервирован PHP и не должен использоваться. Статус выхода 0 используется для успешного завершения программы.
Замечание: PHP >= 4.2.0 НЕ выведет параметр status если он задан как целое число ( integer ).
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования exit
Пример #2 Пример использования exit со статусом выхода
//нормальный выход из программы
exit;
exit();
exit( 0 );
//выход с кодом ошибки
exit( 1 );
exit( 0376 ); //восьмеричный
Пример #3 Функции выключения и деструкторы выполняются независимо
$foo = new Foo ();
register_shutdown_function ( ‘shutdown’ );
exit();
echo ‘Эта строка не будет выведена.’ ;
?>
Результат выполнения данного примера:
Примечания
Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
Смотрите также
Php прекратить выполнение скрипта
(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Вывести сообщение и прекратить выполнение текущего скрипта
Описание
Список параметров
Если status задан в виде строки, то эта функция выведет содержимое status перед выходом.
Если status задан в виде целого числа ( int ), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 0 до 254, статус выхода 255 зарезервирован PHP и не должен использоваться. Статус выхода 0 используется для успешного завершения программы.
Возвращаемые значения
Функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования exit
Пример #2 Пример использования exit со статусом выхода
//обычный выход из программы
exit;
exit();
exit( 0 );
//выход с кодом ошибки
exit( 1 );
exit( 0376 ); //восьмеричный
Пример #3 Функции выключения и деструкторы выполняются независимо
$foo = new Foo ();
register_shutdown_function ( ‘shutdown’ );
exit();
echo ‘Эта строка не будет выведена.’ ;
?>
Результат выполнения данного примера:
Примечания
Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
Смотрите также
User Contributed Notes 20 notes
If you want to avoid calling exit() in FastCGI as per the comments below, but really, positively want to exit cleanly from nested function call or include, consider doing it the Python way:
define an exception named `SystemExit’, throw it instead of calling exit() and catch it in index.php with an empty handler to finish script execution cleanly.
if ( SOME_EXIT_CONDITION )
throw new SystemExit (); // instead of exit()
jbezorg at gmail proposed the following:
?>
After sending the `Location:’ header PHP _will_ continue parsing, and all code below the header() call will still be executed. So instead use:
A side-note for the use of exit with finally: if you exit somewhere in a try block, the finally won’t be executed. Could not sound obvious: for instance in Java you never issue an exit, at least a return in your controller; in PHP instead you could find yourself exiting from a controller method (e.g. in case you issue a redirect).
Here follows the POC:
echo «testing finally wit exit\n» ;
try <
echo «In try, exiting\n» ;
echo «In the end\n» ;
?>
This will print:
testing finally wit exit
In try, exiting
To rich dot lovely at klikzltd dot co dot uk:
Using a «@» before header() to suppress its error, and relying on the «headers already sent» error seems to me a very bad idea while building any serious website.
This is *not* a clean way to prevent a file from being called directly. At least this is not a secure method, as you rely on the presence of an exception sent by the parser at runtime.
I recommend using a more common way as defining a constant or assigning a variable with any value, and checking for its presence in the included script, like:
Beware if you enabled uopz extension, it disables exit / die() by default. They are just «skipped».
>> Shutdown functions and object destructors will always be executed even if exit is called.
It is false if you call exit into desctructor.
Normal exit:
class A
<
public function __destruct ()
<
echo «bye A\n» ;
>
>
class B
<
public function __destruct ()
<
echo «bye B\n» ;
>
>
$a = new A ;
$b = new B ;
exit;
// Output:
// bye B
// bye A
?>
// Exit into desctructor:
class A
<
public function __destruct ()
<
echo «bye A\n» ;
>
>
class B
<
public function __destruct ()
<
echo «bye B\n» ;
exit;
>
>
$a = new A ;
$b = new B ;
In addition to «void a t informance d o t info», here’s a one-liner that requires no constant:
To redirect to / instead of dying:
When using php-fpm, fastcgi_finish_request() should be used instead of register_shutdown_function() and exit()
For example, under nginx and php-fpm 5.3+, this will make browsers wait 10 seconds to show output:
echo «You have to wait 10 seconds to see this.
» ;
register_shutdown_function ( ‘shutdown’ );
exit;
function shutdown () <
sleep ( 10 );
echo «Because exit() doesn’t terminate php-fpm calls immediately.
» ;
>
?>
This doesn’t:
echo «You can see this from the browser immediately.
» ;
fastcgi_finish_request ();
sleep ( 10 );
echo «You can’t see this form the browser.» ;
?>