Php 与x27之间的差异;模具';和';退出';

Php 与x27之间的差异;模具';和';退出';,php,exit,die,Php,Exit,Die,可能重复: 我完全搞不清楚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 = '/pa

可能重复:

我完全搞不清楚
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)");
根据它们的功能,我认为没有任何区别,因为两者都终止了脚本的执行

我的问题是

1) 在这些示例中,我可以将die与exit互换,反之亦然吗

2) 以及两者之间的区别


干杯…

根据它相当于退出。是的,您可以交换它们。

die
exit
函数的别名


php中有许多函数别名,这是由于该语言是如何演变、演变和克服的-。

die()和exit()函数之间没有区别。他们都是一样的,工作也一样

同样的问题是,如果两个函数相同,为什么php会保留它们。这两个函数都是其他函数的别名

由于API和保持向后兼容性,这两个函数都保持不变

这里还有一个例子:

is_int()和is_integer()也是相同的

PHP中有很多函数可以使用多个名称调用。在某些情况下,在多个名称中没有首选名称,例如is_int()和is_integer()同样好。但是,有些函数由于API清理或其他原因更改了名称,旧名称仅作为别名保留,以实现向后兼容性。使用这类别名通常不是一个好主意,因为它们可能会过时或重命名,这将导致不可移植的脚本。提供此列表是为了帮助那些希望将旧脚本升级到新语法的人

您将在以下URL上找到别名函数的完整列表:


这可能会帮助您:)

在使用命令行时

die("Error");
将打印到“Error”(错误)到标准输出
STDOUT
,并以错误代码
0
退出

如果要退出时出现错误代码
1
,您必须:

fwrite(STDERR, "Error");
exit(1);
当从命令行或shell脚本执行php脚本时,它可能很有用,您需要查看脚本是否以非零退出代码终止

这是我能想到的一个区别


另外,从php.net/exit获得的上述信息将参数打印到STDOUT,而不是STDERR(grep或2>/dev/null将帮助您测试它) die返回外壳退出代码为0,但exit可以返回其他代码 让我们在PHP中定义全模模拟:

function mydie($str){
  echo $str.PHP_EOL;
  exit(0);
}

正如@AdamPlocher所说,它们是一体的。用一个你最喜欢的巫婆。实际上我只见过他们用其他方式。。。“或死(…)”等:)但正如前面所说,没有什么区别mysql函数将被弃用,请使用PDO或mysqli;谢谢你的回答。但是你能告诉我为什么
PHP
lang。开发人员创建了这两个函数。我们可以在任何地方使用
exit
home@YogeshSutharPHP中充满了这样的别名。有些是计划好的,但我敢说大部分不是。它只是随着时间的推移而不断发展和变化,有些想法比其他想法更糟糕。
die
alias也会产生有趣的代码行,比如
compliance()或die()@darvids0n
进入龙()或退出();)+1用于查找至少1个差异。这两个函数之间仍然没有差异。只是人们通常使用带有消息的
die
,以及带有退出代码的
exit
。+1表示ThiefMaster。您可以将最后一行更改为
die(1)不更改行为。如果您引用的是不推荐使用的别名,请提供示例。