Php чем отличается exit от die

Die, Exit and Break in PHP

These two constructs are equivalent with each other. They are used to stop the execution of the current PHP script. A message can also be printed as well. These are used when there is an error in a script and you want to exit it as soon as a problem is encountered. Like when you try to open a file and the file doesn’t exist or when you fail to connect to a MySQL database.

If testfile.txt is present, it opens the file for reading and prints the following output:

If testfile.txt is not present, it exits the script and prints the following output:

The file couldn't be found
  • Notice how the upcoming lines are not executed when an error is encountered.
  • The above example works the same when die is replaced with exit.

Break

Break is used to stop the execution of loops and switch structure. You can stop loops like for, foreach, while and do while. The Switch conditional statement also uses the break statement when the case is met. For loops, you will have to manually check for a condition and depending upon the outcome, you can exit the loops that are nested inside multiple levels.

Читайте также:  Перечень типовых управленческих архивных документов html

Break also takes in a numeric argument. This number tells how many levels you want the break statement to end.

Output: 1234 1234 1234 1234

Die and Exit vs. Break

Well, they are completely different things. Die and exit are used to stop the execution of an entire script while break is used to exit loops and switch statements which are enclosed with curly braces <>.

Include, include_once vs. Require and require_once in PHP

Date and Time in PHP

You may also like

MySQLi: Handling MySQL databases in PHP
Connecting to MySQL Databases using PDO in PHP
Detail Introduction to PHP Object Oriented Programming with Examples

This website uses cookies to improve your experience. We’ll assume you’re ok with this, but you can opt-out if you wish. Cookie settingsACCEPT

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

Источник

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

Чем отличаются функции die() и exit() в PHP? Я думаю, что оба имеют одинаковую функциональность, но я сомневаюсь, что в обоих есть что-то различное. что это?

die () и exit () отличаются в других языках, но в php просто прочитайте это beastwithin.org/users/wwwwolf/code/phprant.html

exit () просто выводит программу с числовым статусом выхода, а die () выводит сообщение об ошибке в stderr и выходит со статусом EXIT_FAILURE. so exit() is exit and die() is also exit 🙂

17 ответов

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

Примечание. Эта языковая конструкция эквивалентна die() .

Эта языковая конструкция эквивалентна exit() .

псевдонимы позволяют программистам использовать тот, который удобен для. Я помню выход лучше, чем умереть. Некоторые помнят, что умирают лучше, чем выход.

это ( php.net/manual/en/aliases.php ) может дать некоторое объяснение, почему 2 функции делают то же самое

Несмотря на то, что они делают то же самое, я обычно оставляю die для остановок, связанных с ошибками, и exit для всех других сценариев. Кажется, что при чтении кода это выглядит лучше.

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

@nextgentech, вы его неправильно используете. Используйте exit(0) для успеха и exit($non_zero) для ошибок.

@mauris, лучше для одной функции иметь только одно имя . Представьте, что у каждой PHP-функции есть два имени, что было бы полным беспорядком .

@Pacerier Как я что-то неправильно использую? Ваше утверждение просто игнорирует, что die() даже существует.

@nextgentech, я не говорю, что тебе нужно выбрать exit за die или die за exit . Я говорю, решись и выбери один . Любой из них хорош, не смешивайте оба в одной и той же кодовой базе, если только вы не разрабатываете и не поддерживаете ее.

Лично я использую die при печати ошибки и выхожу после контролируемой остановки, как после перенаправления. Таким образом, легче искать правила ошибок в коде.

@ AlejandroIván Если вы остро воспринимая преимущества скорости от ввода die вместо exit (и я согласен, что это там) , то вы должны серьезно рассмотреть вопрос о переходе к раскладке клавиатуры , как Дворжак — Я думаю , вы бы реально оценить ускорение после кривого обучения ,

@Pacerier Слава богу, единственные дубликаты в PHP — это die и exit ! Проверьте эту страницу: php.net/manual/en/aliases.php

@mtraceur, AlejandroIván сказал: «по тому, как я печатаю, мне не нужно менять положение рук, чтобы написать die», что означало бы, что они, вероятно, используют Dvorak или Colemak, поскольку qwerty помещает i и e в верхний ряд

РАЗНИЦА В ПРОИСХОЖДЕНИИ

Разница между die() и exit() в PHP — это их origin.

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

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

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

Эта языковая конструкция эквивалентна exit() .

Примечание. Эта языковая конструкция эквивалентна die() .

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().

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

Несмотря на то, что речь идет о 100-м ответе о том, что они эквивалентны (как также видно из моего ответа ^^), это действительно добавляет ОЧЕНЬ хорошие плюсы. Больше всего то, что они НЕ одинаковы в других языках (таким образом, путаница в первую очередь). (+1)

@ Левит, нет, нет, вы все неправильно поняли. Никто не владеет именами, а разные языки используют одни и те же имена неравным образом. Это хорошо, потому что нам не нужен еще один стандартный способ работы. «Путаница в первую очередь» происходит из-за того, что PHP назначает два разных имени одной функции.

@Pacerier: Конечно, если вы посмотрите на это с точки зрения «кто виноват», это абсолютно правильно. Тем не менее, это также факт, что они просто означают разные вещи на нескольких языках (что нормально). Глядя на это с нейтральной точки зрения, это определенно верно: существует путаница из-за разных значений (даже если это ошибка php в создании двух одинаковых псевдонимов функций). Я определенно не хотел показывать пальцем ни на один из этих языков, если это было то, что вы поняли из моего комментария . (отлично xkcd кстати (Y) ^^)

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

Есть небольшая разница, и это то, сколько времени занимает парсер, чтобы вернуть токен.

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

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

@ Timeless, Перфекционисты не сказали бы: «PHP — интерпретируемый язык». PHP — это язык, который может быть интерпретирован или скомпилирован в зависимости от настроек вашего сервера.

И . «die» имеет длину 3 символа против 4 для «exit». Так что это занимает на 25% меньше памяти и файлового пространства! 😉

» если это длинный список функций, начинающихся с «d», и более короткий список, начинающийся с «e», то при поиске имени функции для функций, начинающихся с «e» ‘, должно быть затрачено время. означают, что при поиске функции, начинающейся с d , возникает штрафное время? Обычно, чем больше список, тем дольше время, чтобы найти в нем элемент.

Как вы писали, вы не изучали парсер PHP. Спасибо за этот бесполезный ответ, так как он основан на ваших мечтах о том, как реализован PHP.

Источник

What’s the difference between die and exit in PHP?

There is no difference between “die” and “exit” in PHP.

These two language constructs do the exact same thing.

Both “exit” and “die” will output a message and then kill the current PHP script.

For example, if you look at the PHP manual for “die”, you will see the following:

exit vs die php

A screenshot from the PHP manual.

This is kind of like using the word “tap” or “faucet”. Both of these words mean the exact same thing.

Why does PHP have “die” and “exit” if there are no differences between them?

This goes back to the origins of PHP.

You see, PHP was heavily influenced by two programming languages called “C” and “Perl”.

In C, the exit() function terminates the calling process. In Perl, the die function raises an exception and exits the process with a failure.

To make things easier for programmers from C and Perl, the creators of PHP decided to incorporate both “exit” and “die” into their language.

Basically, they were trying to make their language more welcoming.

Aliases.

In certain cases, function names and language constructs can share the exact same name.

In the world of computing, we call them aliases.

For example, the function sizeof does the exact same thing as count.

Think of it like an email forward. When an employee leaves a company, that company will often forward their emails to one of their colleagues.

The developers behind PHP will sometimes “forward” older functions onto newer and better alternatives.

Aliases allow programmers to use whichever name they are comfortable with.

They also give the developers of PHP the ability to remove older functions without breaking things.

For example, in PHP 7.1.0, the function rand became an alias of mt_rand. This is because mt_rand uses a better randomization algorithm.

The algorithm behind the original rand function is flawed. As a result, the PHP team decided to turn it into an alias of mt_rand.

That way, they were able to remove rand without actually removing it.

Источник

Оцените статью