Функции die и exit в php делают одно и тоже

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?

Я думаю, что обе имеют одинаковую функциональность, но я сомневаюсь, что в обоих есть что-то другое … что это?

Нет никакой разницы – они одинаковы.

Руководство PHP для exit :

Руководство PHP для die :

РАЗЛИЧИЯ В ПРОИСХОЖДЕНИИ

ФУНКЦИОНАЛЬНО ЭКВИВАЛЕНТ

die() и exit() являются эквивалентными функциями.

Руководство PHP

Руководство PHP для die :

Руководство PHP для exit :

Руководство PHP для списка псевдонимов функций :

die – это псевдоним для exit() главной функции exit()

РАЗЛИЧИЕ В ДРУГИХ ЯЗЫКАХ

die() и exit() отличаются на других языках, но на PHP они идентичны.

Из еще одного разговора PHP :

… Как C и Perl-кодер, я был готов ответить: «Почему, exit () просто сбрасывает программу с числовым статусом выхода, а die () выводит сообщение об ошибке на stderr и выходит из состояния EXIT_FAILURE. » Но потом я вспомнил, что мы находимся в беспорядочной синтаксической области PHP.

В PHP, exit () и die () идентичны.

Конечным результатом является то, что на самом деле это не делает вещи «более легкими», а просто более запутанными. C и Perl будут продолжать использовать exit () для того, чтобы бросать только значение для целочисленного выхода, а die () – бросать сообщение об ошибке и выходить с ошибкой. Новички и люди из PHP-как-первых наверняка задаются вопросом: «umm, две функции выхода, которую я должен использовать?» В руководстве не объясняется, почему есть exit () и die ().

В общем, PHP имеет много странной избыточности, как это – он пытается быть дружелюбным к людям, которые происходят из разных языков, но при этом создает путаную избыточность.

Как указывалось ранее, эти две команды создают один и тот же токен парсера.

Существует небольшая разница, и это то, как долго парсер возвращает маркер.

Я не изучал парсер PHP, но если это длинный список функций, начинающийся с «d», и более короткий список, начинающийся с «e», тогда должно быть наказание за время, просматривающее имя функции для функций, начинающихся с » е». И могут быть другие различия из-за того, как проверяется имя всей функции.

Я сомневаюсь, что это будет измеримо, если у вас нет «идеальной» среды, посвященной анализу php и множеству запросов с разными параметрами. Но должна быть разница, в конце концов, PHP является интерпретированным языком.

Руководство PHP по матрице :

Вы даже можете die; так же, как exit; – с или без парнеров.

Единственное преимущество при выборе die() over exit() – это время, когда вы набираете лишнюю букву 😉

Как говорят все остальные правильные ответы, die и exit идентичны / псевдонимы.

Когда я использую exit:

Когда я использую die:

Конечно, это работает только при работе над проектом. Когда есть больше людей, никто не будет препятствовать им использовать die или exit если он не соответствует моим соглашениям …

есть функции, которые меняли имена из-за очистки API или по другой причине, а старые имена сохраняются только как псевдонимы для обратной совместимости. Как правило, плохая идея использовать эти псевдонимы, поскольку они могут быть связаны устареванием или переименованием, что приведет к неспортивному сценарию.

Итак, назовите меня параноидальным, но в будущем не может быть никакого умирания.

Они, по сути, одинаковы, хотя в этой статье предлагается иное.

Этот вывод с https://3v4l.org показывает, что die и exit функционально идентичны. Функции die и exit в php делают одно и тоже

При использовании командной строки,

Будет печатать на «Ошибка» до STDOUT и выходить с кодом ошибки 0.

если вы хотите выйти с кодом ошибки 1, вам необходимо:

Это может быть полезно при выполнении сценариев php из командной строки или сценариев оболочки, и вы хотите узнать, завершен ли сценарий с кодом нулевого выхода. скопированный ответ charanjeet от Quora

Что-то, что я заметил в моих сценариях, по крайней мере, заключается в том, что exit () остановит исполняемый скрипт и передаст управление на любой вызывающий скрипт, в то время как die остановит php на своих дорожках. Я бы сказал, что это большая разница?

Функционально они идентичны. Поэтому выбирать, какой из них использовать, является полностью личным предпочтением. Семантически по-английски они разные. Звук звучит отрицательно. Когда у меня есть функция, которая возвращает данные JSON клиенту и завершает работу программы, это может быть ужасно, если я вызываю эту функцию jsonDie (), и более целесообразно называть ее jsonExit (). По этой причине я всегда использую exit вместо die.

В w3schools Quiz: функции die () и exit () выполняют то же самое? мой ответ ложный. Это неправильный ответ. Правильный ответ верен.

Вот скриншот: Функции die и exit в php делают одно и тоже

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

Обычно вам это действительно не нужно, но при написании сценариев на консольном PHP вы можете проверить, например, с Bash, если скрипт завершил все правильно.

Затем вы можете использовать exit () и поймать это позже. Однако Die () не поддерживает этого.

Die () всегда существует с кодом 0. Таким образом, по существу команда die () выполняет следующие действия:

Источник

PHP: использование exit(); или die (); после заголовка («Location: «);

у меня есть система входа/регистрации пользователя, которая просто использует

недавно я прочитал сообщение о exit(); и die(); и понятия не имел, что я должен был использовать их. Из того, что я понимаю, они делают это конец PHP? Это верно? Каков наилучший способ, которым я могу работать над этим, просто добавив одну из этих функций непосредственно после ever header(); выполнение у меня есть?

у меня есть AJAX, jQuery чтение через мой логин.php / Регистрация.php, будет ли это влиять в любом случае?

изменить: другие, чем после заголовка();, где еще я должен быть usitilizing в exit(); или die(); функции? И exit(); больше используется вокруг PHP, тогда как die(); больше используется вокруг Perl?

5 ответов

я тоже искал ответ на этот вопрос. Что я нашел:

почему die () или exit ():

если вы не ставите die() или exit () после вашего header(‘Location: http://something’) ваш скрипт может продолжать приводить к неожиданному поведению. Это может, например, привести к раскрытию содержимого, которое вы действительно хотели предотвратить с помощью перенаправления (HTTP 301). Вышеупомянутое не может быть непосредственно видно конечному пользователю, поскольку браузер не может его отображать (из-за 301). Заключение функции exit () и die () останавливают продолжение сценария.

отличия:

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

Exit () в действии

Die() в действии

разница

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

ответ уже принят, однако кажется, что всем не хватает вопиющего WTF в вопросе:

возврат реферера является необязательным со стороны агента пользователя

его можно легко подделать

нет способа сообщить пользователю, что вход в систему не удался

отсутствует семантическая связь HTTP аутентификации неудача

хотя переменная среды HTTP_REFERER должна быть такой же, как переменная заголовка запроса, она не указана в RFC 3875, поэтому даже там, где она представлена веб-серверу в запросе, getenv(«HTTP_REFERER») может возвращать другое значение

хорошо, прошло много времени с тех пор, как был дан последний ответ. В любом случае: D как-то я наткнулся на подобную проблему и увидел, что мое решение было:

Источник

Каковы различия в 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 функционально идентичны. Функции die и exit в php делают одно и тоже

Ответ 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() выполняет следующие действия:

Источник

Каковы различия в die () и exit () в PHP?

Я думаю, что обе имеют одинаковую функциональность, но я сомневаюсь, что в обоих есть что-то другое … что это?

Нет никакой разницы – они одинаковы.

Руководство PHP для exit :

Руководство PHP для die :

РАЗЛИЧИЯ В ПРОИСХОЖДЕНИИ

ФУНКЦИОНАЛЬНО ЭКВИВАЛЕНТ

die() и exit() являются эквивалентными функциями.

Руководство PHP

Руководство PHP для die :

Руководство PHP для exit :

Руководство PHP для списка псевдонимов функций :

die – это псевдоним для exit() главной функции exit()

РАЗЛИЧИЕ В ДРУГИХ ЯЗЫКАХ

die() и exit() отличаются на других языках, но на PHP они идентичны.

Из еще одного разговора PHP :

… Как C и Perl-кодер, я был готов ответить: «Почему, exit () просто сбрасывает программу с числовым статусом выхода, а die () выводит сообщение об ошибке на stderr и выходит из состояния EXIT_FAILURE. » Но потом я вспомнил, что мы находимся в беспорядочной синтаксической области PHP.

В PHP, exit () и die () идентичны.

Конечным результатом является то, что на самом деле это не делает вещи «более легкими», а просто более запутанными. C и Perl будут продолжать использовать exit () для того, чтобы бросать только значение для целочисленного выхода, а die () – бросать сообщение об ошибке и выходить с ошибкой. Новички и люди из PHP-как-первых наверняка задаются вопросом: «umm, две функции выхода, которую я должен использовать?» В руководстве не объясняется, почему есть exit () и die ().

В общем, PHP имеет много странной избыточности, как это – он пытается быть дружелюбным к людям, которые происходят из разных языков, но при этом создает путаную избыточность.

Как указывалось ранее, эти две команды создают один и тот же токен парсера.

Существует небольшая разница, и это то, как долго парсер возвращает маркер.

Я не изучал парсер PHP, но если это длинный список функций, начинающийся с «d», и более короткий список, начинающийся с «e», тогда должно быть наказание за время, просматривающее имя функции для функций, начинающихся с » е». И могут быть другие различия из-за того, как проверяется имя всей функции.

Я сомневаюсь, что это будет измеримо, если у вас нет «идеальной» среды, посвященной анализу php и множеству запросов с разными параметрами. Но должна быть разница, в конце концов, PHP является интерпретированным языком.

Руководство PHP по матрице :

Вы даже можете die; так же, как exit; – с или без парнеров.

Единственное преимущество при выборе die() over exit() – это время, когда вы набираете лишнюю букву 😉

Как говорят все остальные правильные ответы, die и exit идентичны / псевдонимы.

Когда я использую exit:

Когда я использую die:

Конечно, это работает только при работе над проектом. Когда есть больше людей, никто не будет препятствовать им использовать die или exit если он не соответствует моим соглашениям …

есть функции, которые меняли имена из-за очистки API или по другой причине, а старые имена сохраняются только как псевдонимы для обратной совместимости. Как правило, плохая идея использовать эти псевдонимы, поскольку они могут быть связаны устареванием или переименованием, что приведет к неспортивному сценарию.

Итак, назовите меня параноидальным, но в будущем не может быть никакого умирания.

Они, по сути, одинаковы, хотя в этой статье предлагается иное.

Этот вывод с https://3v4l.org показывает, что die и exit функционально идентичны. Функции die и exit в php делают одно и тоже

При использовании командной строки,

Будет печатать на «Ошибка» до STDOUT и выходить с кодом ошибки 0.

если вы хотите выйти с кодом ошибки 1, вам необходимо:

Это может быть полезно при выполнении сценариев php из командной строки или сценариев оболочки, и вы хотите узнать, завершен ли сценарий с кодом нулевого выхода. скопированный ответ charanjeet от Quora

Что-то, что я заметил в моих сценариях, по крайней мере, заключается в том, что exit () остановит исполняемый скрипт и передаст управление на любой вызывающий скрипт, в то время как die остановит php на своих дорожках. Я бы сказал, что это большая разница?

Функционально они идентичны. Поэтому выбирать, какой из них использовать, является полностью личным предпочтением. Семантически по-английски они разные. Звук звучит отрицательно. Когда у меня есть функция, которая возвращает данные JSON клиенту и завершает работу программы, это может быть ужасно, если я вызываю эту функцию jsonDie (), и более целесообразно называть ее jsonExit (). По этой причине я всегда использую exit вместо die.

В w3schools Quiz: функции die () и exit () выполняют то же самое? мой ответ ложный. Это неправильный ответ. Правильный ответ верен.

Вот скриншот: Функции die и exit в php делают одно и тоже

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

Обычно вам это действительно не нужно, но при написании сценариев на консольном PHP вы можете проверить, например, с Bash, если скрипт завершил все правильно.

Затем вы можете использовать exit () и поймать это позже. Однако Die () не поддерживает этого.

Die () всегда существует с кодом 0. Таким образом, по существу команда die () выполняет следующие действия:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *