php die или exit
PHP: What is the difference between exit(), die() and return; within «self» and included files?
3 Answers 3
Return returns a value. This can be anything and is meant for functions.
die and exit (equivalent functions)
Terminates execution of the script.
return
Returns program control to the calling module. Execution resumes at the statement following the called module’s invocation.
If called from within a function, the return statement immediately ends execution of the current function, and returns its argument as the value of the function call. return also ends the execution of an eval() statement or script file.
If called from the global scope, then execution of the current script file is ended. If the current script file was included or required, then control is passed back to the calling file. Furthermore, if the current script file was included, then the value given to return will be returned as the value of the include call. If return is called from within the main script file, then script execution ends. If the current script file was named by the auto_prepend_file or auto_append_file configuration options in php.ini, then that script file’s execution is ended.
die vs exit
The difference between die() and exit() in PHP is their origin.
PHP Manual
DIFFERENT IN OTHER LANGUAGES
die() and exit() are different in other languages but in PHP they are identical.
. As a C and Perl coder, I was ready to answer, «Why, exit() just bails off the program with a numeric exit status, while die() prints out the error message to stderr and exits with EXIT_FAILURE status.» But then I remembered we’re in messy-syntax-land of PHP.
In PHP, exit() and die() are identical.
The designers obviously thought «Hmm, let’s borrow exit() from C. And Perl folks probably will like it if we take die() as is from Perl too. Oops! We have two exit functions now! Let’s make it so that they both can take a string or integer as an argument and make them identical!»
The end result is that this didn’t really make things any «easier», just more confusing. C and Perl coders will continue to use exit() to toss an integer exit value only, and die() to toss an error message and exit with a failure. Newbies and PHP-as-a-first-language people will probably wonder «umm, two exit functions, which one should I use?» The manual doesn’t explain why there’s exit() and die().
PHP: в чем разница между exit()/die() и return; внутри «self» и включенных файлов?
3 ответов
Return возвращает значение. Это может быть что угодно и предназначено для функций.
Return is возвращает значение (char,int,string, array. ) и выход из функции.
из руководства php:
Примечание: эта языковая конструкция эквивалентна die ().
но все же есть разница между умереть и выход :
используя die () вы можете опубликовать строку : die(«произошла ошибка»);
такой же результат с использованием exit ()
или если вы CLI или оболочка unix:
используя PHP в командной строке, die («произошла ошибка») просто печатает» произошла ошибка » в STDOUT и завершает программу обычным кодом выхода 0.
die и exit (эквивалентные функции)
return
возвращает управление программой вызывающему модулю. Исполнение возобновляется на оператор, следующий за вызовом вызываемого модуля.
если вызывается из функции, оператор return немедленно выполнение заканчивается текущей функции и возвращает свой аргумент как значение вызова функции. return также завершает выполнение оператор eval() или файл сценария.
если вызывается из глобальной области, то выполнение текущего скрипта файл закончен. Если текущий файл сценария включен или требуется, затем управление передается обратно в вызывающий файл. Кроме того, если текущий файл сценария был включен, затем значение, заданное для возврата, будет быть возвращенным как значение включить вызов. Если return вызывается из в главном файле скрипта завершается выполнение скрипта. Если текущий файл сценария был назван auto_prepend_file или параметры конфигурации auto_append_file в php.ini, то этот сценарий выполнение файла прекращается.
die vs exit
разницу между die() и exit() в PHP-это их origin.
руководство по PHP
руководство PHP для die :
в PHP Руководство для exit :
РАЗНЫЕ НА ДРУГИХ ЯЗЫКАХ
die() и exit() are другое на других языках но в PHP они идентичны.
. как кодер C и Perl, я был готов ответить: «почему, exit () just bails выключите программу с числовым статусом выхода, а die () распечатает сообщение об ошибке в stderr и завершает работу со статусом EXIT_FAILURE.» Зато Я вспомнил, что мы в грязно-синтаксис-земля на PHP.
в PHP exit () и die() являются идентичный.
дизайнеры, очевидно, подумали: «Хм, давайте одолжим выход() из C. И Perl людям, вероятно, понравится, если мы возьмем die () как от Perl тоже. Упс! Теперь у нас есть две функции выхода! Давай сделаем так, чтобы они оба можете взять строку или целое число в качестве аргумента и сделать их одинаковыми!»
конечный результат заключается в том, что это не реально сделать все «проще», просто более запутанной. Кодеры C и Perl будут продолжайте использовать exit () для бросьте только целочисленное значение выхода и die (), чтобы бросить сообщение об ошибке и выйти с провалом. Новички и PHP-как-первый-язык люди вероятно, будет интересно » umm, две функции выхода, которые я должен использовать?»Руководство не объясняет, почему есть exit () и die ().
в общем, PHP имеет много странной избыточности, как это-он пытается будьте дружелюбны к людям, которые происходят из разных языков, но при этом он создает смущает избыточность.
Каковы различия в die() и exit() в PHP?
Чем отличаются функции die() и exit() в PHP?
Я думаю, что оба имеют одинаковую функциональность, но я сомневаюсь, что в обоих есть что-то различное. что это?
ОТВЕТЫ
Ответ 1
Руководство по PHP для exit :
Руководство по PHP для die :
Ответ 2
РАЗНИЦА В ПРОИСХОЖДЕНИИ
ФУНКЦИОНАЛЬНО ЭКВИВАЛЕНТ
die() и exit() являются эквивалентными функциями.
Руководство по PHP
Руководство по PHP для die :
Руководство по PHP для exit :
die является псевдонимом для главной функции exit()
РАЗЛИЧИЕ В ДРУГИХ ЯЗЫКАХ
die() и exit() разные на других языках но на PHP они идентичны.
. Как C и Perl-кодер, я был готов ответить: «Почему, exit() просто поручает выключить программу с числовым статусом выхода, а die() выдает сообщение об ошибке в stderr и выходы с статусом EXIT_FAILURE.» Но тогда Я помнил, что мы находимся в грязной синтаксической области PHP.
В PHP, exit() и die() идентичны.
Дизайнеры, очевидно, подумали: «Хм, пусть займется exit() из C. И Perl людям, вероятно, понравится, если мы возьмем die(), как и Perl. К сожалению! Теперь у нас есть две функции выхода! Позвольте сделать так, чтобы они оба может принимать строку или целое число в качестве аргумента и сделать их идентичными!»
Конечный результат заключается в том, что на самом деле это не делало вещи «проще», просто более запутанным. C и Perl будут продолжать использовать exit() для бросать только целое значение выхода и die(), чтобы бросить сообщение об ошибке и выйти с ошибкой. Новички и люди из PHP-как-первых вероятно, будут удивлены «umm, две функции выхода, которые я должен использовать?» В руководстве не объясняется, почему есть exit() и die().
Ответ 3
Как указано выше, эти две команды создают один и тот же токен синтаксического анализатора.
Есть небольшая разница, и это то, сколько времени занимает парсер, чтобы вернуть токен.
Я не изучал синтаксический анализатор PHP, но если это длинный список функций, начинающихся с «d», и более короткий список, начинающийся с «e», то должен быть временной штраф при поиске имени функции для функций, начинающихся с » е». И могут быть другие различия из-за того, как проверяется полное имя функции.
Ответ 4
Руководство по PHP на die:
Единственным преимуществом выбора die() перед exit() может быть время, которое вы тратите на ввод дополнительной буквы 😉
Ответ 5
Как и все другие правильные ответы, die и exit идентичны/псевдонимы.
Когда я использую exit:
Когда я использую die:
Ответ 6
существуют функции, которые меняли имена из-за очистки API или какой-либо другой причины, а старые имена сохраняются только как псевдонимы для обратной совместимости. Как правило, это плохая идея использовать эти псевдонимы, поскольку они могут быть связаны устареванием или переименованием, что приведет к неуправляемому script.
Ответ 7
Вот кое-что, что довольно интересно. Хотя exit() и die() эквивалентны, die() закрывает соединение. exit() не закрывает соединение.
Результаты:
Просто нужно учесть это для вашего проекта.
Ответ 8
Этот вывод https://3v4l.org демонстрирует, что die и exit функционально идентичны.
Ответ 9
По функциональности они идентичны, но я использую их в следующих сценариях, чтобы сделать код читабельным:
Используйте die(), когда возникает ошибка, и необходимо остановить выполнение.
например die( ‘Oops! Something went wrong’ );
Используйте exit(), когда нет ошибки и необходимо остановить выполнение.
например exit( ‘Request has been processed successfully!’ );
Ответ 10
Они, по сути, одинаковы, хотя в статье говорится об обратном.
Ответ 11
При использовании командной строки
Вернется к «Ошибка» в STDOUT и выйдет с кодом ошибки 0.
если вы хотите выйти с кодом ошибки 1, вам необходимо:
Это может быть полезно при выполнении сценариев php из командной строки или сценариев оболочки, и вы хотите узнать, завершен ли script с кодом нулевого выхода. скопированный ответ charanjeet из Quora
Ответ 12
Из того, что я знаю, когда я смотрю на этот вопрос здесь
Там говорится, что «в PHP есть четкое различие в выводе заголовка. В приведенных ниже примерах я решил использовать другой заголовок, но для демонстрации разницы между exit() и die(), которая не имеет значения», и проверено (лично)
Ответ 13
die() и exit() обе функции эквивалентны друг другу. Основное отличие состоит в том, что exit() останавливает скрипт, но выводит вывод. Но die() напрямую останавливает выполнение скрипта.
Ответ 14
Функционально они идентичны. Поэтому выбирать, какой из них использовать, является полностью личным предпочтением. Семантически по-английски они разные. Звук звучит отрицательно. Когда у меня есть функция, которая возвращает данные JSON клиенту и завершает работу программы, это может быть ужасно, если я вызываю эту функцию jsonDie(), и более целесообразно называть ее jsonExit(). По этой причине я всегда использую exit вместо die.
Ответ 15
В w3schools Опрос: Функции die() и exit() выполняют то же самое? мой ответ ложный. Это неправильный ответ. Правильный ответ верен.
Ответ 16
Что-то, что я заметил в моих сценариях, по крайней мере, заключается в том, что exit() остановит текущий исполняемый script и передаст управление обратно любому вызывающему script, в то время как die остановит php на своих дорожках. Я бы сказал, что это большая разница?
Ответ 17
Результат функций exit() и die() всегда одинаков. Но, как объяснено на странице руководства по псевдонимам (http://php.net/manual/en/aliases.php), говорится, что функция die() вызывает функцию выхода. Я думаю, что это жестко, как показано ниже:
Это не проблема производительности для малых, средних и крупных проектов, но если в проекте есть миллиарды, умноженные на миллиарды, умноженные на миллиарды процессов, это очень важное состояние оптимизации производительности.
Но большинство людей не думают, что это проблема, потому что если у вас так много процессов, вы должны думать о большем количестве проблем, чем если бы функция была хозяином или псевдонимом.
Но точный ответ таков; всегда мастер-функция быстрее, чем псевдоним.
В заключение; На странице руководства Alias написано, что вы больше не можете использовать die. Это только псевдоним, и он не рекомендуется.
Обычно это плохая идея использовать такие псевдонимы, так как они могут быть связаны с устареванием или переименованием, что приведет к непереносимым сценариям. Этот список предназначен для тех, кто хочет обновить свои старые сценарии до более нового синтаксиса.
Ответ 18
Они звучат примерно одинаково, однако exit() также позволяет вам установить код выхода вашего PHP script.
Обычно вам это действительно не нужно, но при написании сценариев консоли PHP вы можете проверить, например, с помощью Bash, если script выполнил все правильно.
Затем вы можете использовать exit() и позже поймать. Однако Die() не поддерживает это.
Die() всегда существует с кодом 0. Поэтому по существу команда die() выполняет следующие действия:
Php die или exit
(PHP 4, PHP 5, PHP 7, PHP 8)
die — Эквивалент функции exit
Описание
User Contributed Notes 7 notes
If you ever want the public to use your site, always design it to handle errors in a way that will allow them to continue using it if possible. If it’s not possible and the site really is broken, make sure that you find out so that you can fix it. die() by itself won’t do either.
If a supermarket freezer breaks down, a customer who wanted to buy a tub of ice cream doesn’t expect to be kicked out of the building.
Beware that when using PHP on the command line, die(«Error») simply prints «Error» to STDOUT and terminates the program with a normal exit code of 0.
If you are looking to follow UNIX conventions for CLI programs, you may consider the following:
$ php die.php > test
An error occurred.
rc@adl-dev-01:
Ideally, PHP would write all Warnings, Fatal Errors, etc on STDERR, but that’s another story.
Using die() can be a good option when working with HTTP Endpoints.
If your PHP Script is one, you can use die() to send back an error as plain text or JSON for example.
die(json_encode(array(‘error’ => ‘some error’)));
Do not forget to add an error log, so you also get to know about the problem, as well as an error 500 header.
/* log.txt
2017-11-01T23:56:00+00:00 (normal)
2017-11-01T23:56:01+00:00 (normal)
2017-11-01T23:56:02+00:00 (normal)
2017-11-01T23:56:03+00:00 (shutdown)
2017-11-01T23:56:04+00:00 (shutdown)
2017-11-01T23:56:05+00:00 (shutdown)
[ logs for 3 days ]
*/
?>
2.) With this code, the registered function is limited to max_execution_time.
// [. ]
// Try 2 to go to shutdown
sleep ( ini_get ( «max_execution_time» ) + 1 );
Каковы различия в die() и exit() в PHP?
Чем отличаются функции die() и exit() в PHP?
Я думаю, что оба имеют одинаковую функциональность, но я сомневаюсь, что в обоих есть что-то различное. что это?
Руководство по PHP для exit :
Руководство по PHP для die :
РАЗНИЦА В ПРОИСХОЖДЕНИИ
die() и exit() являются эквивалентными функциями.
Руководство по PHP
Руководство по PHP для die :
Руководство по PHP для exit :
die является псевдонимом для главной функции exit()
die() и exit() разные на других языках но на PHP они идентичны.
. Как C и Perl-кодер, я был готов ответить: «Почему, exit() просто поручает выключить программу с числовым статусом выхода, а die() выдает сообщение об ошибке в stderr и выходы с статусом EXIT_FAILURE.» Но тогда Я помнил, что мы находимся в грязной синтаксической области PHP.
В PHP, exit() и die() идентичны.
Дизайнеры, очевидно, подумали: «Хм, пусть займется exit() из C. И Perl людям, вероятно, понравится, если мы возьмем die(), как и Perl. К сожалению! Теперь у нас есть две функции выхода! Позвольте сделать так, чтобы они оба может принимать строку или целое число в качестве аргумента и сделать их идентичными!»
Конечный результат заключается в том, что на самом деле это не делало вещи «проще», просто более запутанным. C и Perl будут продолжать использовать exit() для бросать только целое значение выхода и die(), чтобы бросить сообщение об ошибке и выйти с ошибкой. Новички и люди из PHP-как-первых вероятно, будут удивлены «umm, две функции выхода, которые я должен использовать?» В руководстве не объясняется, почему есть exit() и die().