3 回答
TA贡献1798条经验 获得超7个赞
原产地的差异
PHP die()
和exit()
PHP 之间的区别在于它们的起源。
功能等同
PHP手册
PHP手册die
:
这种语言结构相当于
exit()
。
PHP手册exit
:
注意:这种语言结构相当于
die()
。
PHP 函数别名列表手册:
其他语言不同
die()
并且在其他语言exit()
中有所不同,但在PHP中它们是相同的。
来自又一个PHP咆哮:
...作为C和Perl编码器,我准备回答:“为什么,exit()只是用数字退出状态来关闭程序,而die()将错误消息输出到stderr并以EXIT_FAILURE状态退出。 “ 但后来我记得我们处于混乱的PHP语法之中。
在PHP中,exit()和die()是相同的。
设计师显然认为“嗯,让我们从C借用exit()。而Perl人们可能会喜欢它,如果我们也像Perl那样使用die()。哎呀!我们现在有两个退出函数!让我们这样做他们俩可以将字符串或整数作为参数,使它们相同!“
最终的结果是,这并没有让事情变得“更容易”,更令人困惑。C和Perl编码器将继续使用exit()仅抛出整数退出值,而die()抛出错误消息并退出失败。新手和PHP作为第一语言的人可能会想“嗯,两个退出函数,我应该使用哪一个?” 该手册没有解释为什么有exit()和die()。
一般来说,PHP有很多像这样的奇怪冗余 - 它试图对来自不同语言背景的人友好,但在这样做时,它会产生令人困惑的冗余。
TA贡献1789条经验 获得超8个赞
如前所述,这两个命令产生相同的解析器令牌。
但
这有一个很小的区别,那就是解析器返回令牌需要多长时间。
我还没有研究过PHP解析器,但如果它是以“d”开头的一长串函数列表,以及一个以“e”开头的较短列表,那么查找函数的函数名必须有时间惩罚,以“ E”。由于如何检查整个函数名称,可能存在其他差异。
我怀疑它是可测量的,除非你有一个专门解析PHP的“完美”环境,以及许多不同参数的请求。但毕竟PHP必须有区别,因为它是一种解释型语言。
- 3 回答
- 0 关注
- 683 浏览
添加回答
举报