可能的重复:
PHP中的die()和exit()有什么区别?
我对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());
}
并使用类似于该的CCD_ 4
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
根据那里的功能,我认为没有任何区别,因为两者都终止了脚本的执行。
我的问题是
1)在这些例子中,我可以将die与exit互换吗?反之亦然?
2) 以及它们之间的区别。
干杯。。。
根据Die,它相当于退出。所以,是的,你可以交换它们。
使用命令行时,
die("Error");
将打印到STDOUT
的"错误",并退出,返回错误代码0
。
如果您想退出并返回错误代码1
,您必须:
fwrite(STDERR, "Error");
exit(1);
当从命令行或shell脚本执行php脚本时,它可能很有用,并且您希望查看脚本是否以非零退出代码终止。
这是我能想到的一个区别。
p.S.以上信息来自php.net/exit
同样的问题是,如果两个函数相同,php为什么保留它们。这两个函数都是其他函数的别名。
由于API和保持向后兼容性,保留了两个函数。
这里还有一个例子:
is_int()和is_integer()也是相同的。
PHP中有很多函数可以用多个名称调用。在某些情况下,在多个名称中没有首选名称,例如is_int()和is_integer()同样好。但是,有些函数由于API清理或其他原因而更改了名称,并且为了向后兼容,旧名称仅保留为别名。使用这类别名通常是个坏主意,因为它们可能会过时或重命名,从而导致脚本无法启动。提供此列表是为了帮助那些希望将旧脚本升级为新语法的用户。
别名函数的完整列表,您将在以下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返回shell出口代码为0,但出口可以返回其他代码让我们在PHP中定义完全模拟:
function mydie($str){
echo $str.PHP_EOL;
exit(0);
}