Ответ 1
В соответствии с Die он имеет эквивалент для выхода. Так что да, вы можете их обменять.
Возможный дубликат:
Каковы различия в die() и exit() в PHP?
Я полностью запутался в разнице die
и exit
.
Большинство программистов используют die
следующим образом.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); //don't see mysql_* problem it is just example
if (!$link) {
die('Could not connect: ' . mysql_error());
}
и используя exit
, как этот
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
В соответствии с этой функциональностью я не думаю, что есть какая-то разница, поскольку оба завершают выполнение script.
Мой вопрос
1) Могу ли я обменять die с выходом и наоборот в этих примерах?
2) И разница между ними также.
Приветствие...
В соответствии с Die он имеет эквивалент для выхода. Так что да, вы можете их обменять.
При использовании командной строки
die("Error");
Вернется к "Ошибка" до STDOUT
и выйдет с кодом ошибки 0
.
если вы хотите выйти с кодом ошибки 1
, вам необходимо:
fwrite(STDERR, "Error");
exit(1);
Это может быть полезно при выполнении сценариев php из командной строки или сценариев оболочки, и вы хотите узнать, завершен ли script с кодом нулевого выхода.
Это одна разница, о которой я мог подумать.
P.S. Выше информации, полученной из php.net/exit
Нет никакой разницы между функцией die() и exit(). Они оба одинаковы и работают одинаково.
Снова возникает вопрос, почему php сохраняет обе функции, если они одинаковы. Обе функции являются псевдонимом друг друга.
Благодаря API и сохранению обратной совместимости обе функции сохраняются.
Вот еще один пример:
is_int() и is_integer() также совпадают.
В PHP существует немало функций, которые вы можете назвать несколькими именами. В некоторых случаях не существует предпочтительного имени среди нескольких, is_int() и is_integer() одинаково хороши, например. Однако есть функции, которые меняли имена из-за очистки API или по другой причине, а старые имена сохраняются только как псевдонимы для обратной совместимости. Как правило, это плохая идея использовать эти псевдонимы, поскольку они могут быть связаны с устареванием или переименованием, что приведет к неспортивным script. Этот список предоставляется, чтобы помочь тем, кто хочет обновить свои старые сценарии до более нового синтаксиса.
Полный список функций псевдонимов вы найдете по следующему URL-адресу:
http://php.net/manual/en/aliases.php
Пусть это поможет вам:)
die
является псевдонимом функции exit
.
В php существует много псевдонимов функций, из-за того, как язык развился, развился и преодолел его - http://www.php.net/manual/en/aliases.php.
die печатает аргумент STDOUT, а не STDERR (grep или 2 > /dev/null поможет вам протестировать его) die возвращает код выхода оболочки в 0, но exit может возвращать другой код позволяет определить полный аналог в PHP:
function mydie($str){
echo $str.PHP_EOL;
exit(0);
}