可能重复:
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());
}
Run Code Online (Sandbox Code Playgroud)
并使用exit这样的
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
Run Code Online (Sandbox Code Playgroud)
根据那里的功能,我认为没有任何区别,因为它们都会终止脚本的执行.
我的问题是
1)在这些例子中,我可以与出口互换模具,反之亦然吗?
2)这些也有区别.
干杯...
Pra*_*nth 13
使用命令行时,
die("Error");
Run Code Online (Sandbox Code Playgroud)
将打印到"错误" STDOUT并退出并显示错误代码0.
如果要退出并显示错误代码1,则必须:
fwrite(STDERR, "Error");
exit(1);
Run Code Online (Sandbox Code Playgroud)
从命令行或shell脚本执行php脚本时,它可能很有用,并且您希望查看脚本是否以非零退出代码终止.
这是我能想到的一个区别.
PS上面的信息来自php.net/exit
die()和exit()函数之间没有区别.它们都是相同的并且工作原理相同.
再问题是为什么php保持这两个功能,如果它们是相同的.这两个函数都是彼此函数的别名.
由于API和保持向后兼容性,两个功能都保持不变.
这是另一个例子:
is_int()和is_integer()也是一样的.
PHP中有很多函数可以使用多个名称调用.在某些情况下,多个名称中没有首选名称,例如is_int()和is_integer()同样好.但是,由于API清理或其他原因,有些函数会更改名称,旧名称仅作为别名保留以便向后兼容.使用这些别名通常是一个坏主意,因为它们可能会被淘汰或重命名,这将导致不可移植的脚本.提供此列表是为了帮助那些想要将旧脚本升级为更新语法的用户.
完整的别名功能列表,您可以在以下URL中找到:
http://php.net/manual/en/aliases.php
愿这会帮到你:)
die将参数输出到STDOUT,而不是STDERR(grep或2> / dev / null将帮助您测试),将shell退出代码返回为0,但是exit可以返回其他代码,以便在PHP中定义完全模拟:
function mydie($str){
echo $str.PHP_EOL;
exit(0);
}
Run Code Online (Sandbox Code Playgroud)