说一下PHP中die()和exit()区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说一下PHP中die()和exit()区别相关的知识,希望对你有一定的参考价值。

请高手说一下php中die()和exit()区别。

1、用法习惯不同,当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字。

2、名字不同,其实PHP手册已经说过“die — Equivalent to exit().This language construct is equivalent to exit(). ”两者只是别名关系,除此之外完全一样。

3、源码的处理方式不同,无论是别名函数还是别名语言结构,从实际效果角度讲,都是一样的,但是源码的处理方式还是有一定的差异。

扩展资料:

die()和exit()差异实例:

zend_language_parser.c中,定义了一个宏

#define T_EXIT 300

还定义了一个enum,里面也有

enum yytokentype

T_EXIT = 300,
….

这里告诉我们,T_EXIT这个token,它的code是300。

再看zend_language_scanner.l,其中有这么几行代码。

<ST_IN_SCRIPTING>”exit”
return T_EXIT;

<ST_IN_SCRIPTING>”die”
return T_EXIT;

很明显,php做词法分析时,无论遇到exit还是die,都会返回T_EXIT这个token。从这里酒可以证明,die和exit,再php内部处理是完全一样的。

也可以用下列php代码来确定:

<?php
var_dump(token_get_all(“<?php die;exit;?>”));

返回的结果中die和exit对应的token code,都是300。

参考资料:

PHP exit() 函数-w3school

PHP die() 函数-w3school

参考技术A

PHP手册:die()Equivalent to exit()。

说明:die()和exit()都是中止脚本执行函数;其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别名。该函数只接受一个参数,可以是一个程序返回的数值或是一个字符串,也可以不输入参数,结果没有返回值。

参考:虽然两者相同,但通常使用中也有细微的选择性。例如:

当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字。

 echo "1111"; 
 exit(0);

当程序出错时,可以给它传递一个字符串,它会原样输出在系统终端上,通常使用die()这个名字。

$fp=fopen("./readme.txt","r") or die("不能打开该文件");

参考技术B PHP中die()和exit()是完全相同,没有任何区别,die是exit的同义词。 参考技术C 一个是完全卸载出内存,一个是退出但不卸载出内存…
比划下:
你老婆小生你气,让你滚出去,你就从卧室跑到客厅但是不出家门。
而你老婆要是让你死滚,你可能就要被轰出家门了…
前者之后可能还会被重新调入卧室,后者短时间内用不着了…哈哈…本回答被提问者采纳
参考技术D 那个满意回答错了。php源码:

zend_language_scanner.l

<ST_IN_SCRIPTING>"exit"
return T_EXIT;

<ST_IN_SCRIPTING>"die"
return T_EXIT;


zend_language_parser.c

#define T_EXIT 300

这两个都是语言结构非函数,这两个语句都会返回T_EXIT这个token,对应的token code都是300。可以用下面php代码检验:
var_dump(token_get_all("<?php die;exit;?>"));

所以这俩只是别名关系,无任何其他区别

以上是关于说一下PHP中die()和exit()区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP中exit()与die()的区别

整理分享1PHP中exit()与die()的区别

解析php中die(),exit(),return的区别

php 中die() 和 exit() 的区别

PHP:exit()、die() 和 return 有啥区别;在“自我”和包含的文件中?

PHP中的die()和exit()有啥区别?