本篇文章简要分析一下在 php 中经常用到的 exit 和 die 的区别, 有需要的朋友可以看一下.
首先思考一个问题:
如下代码会向页面显示什么?
<?php die(123); ?>
曾经有段时间我一直认为 页面会显示 123, 但实践结果告诉我, 答案错了, 页面一片空白!
一直不知道为什么, 死活不输出 123, 为了让页面输出 123, 我把它修改为如下代码:
- <?php
- echo '123';
- die();
- ?>
网上的一段资料:
PHP 中 exit()与 die()的区别
PHP 手册: die()Equivalent to exit().
说明: die()和 exit()都是中止脚本执行函数; 其实 exit 和 die 这两个名字指向的是同一个函数, die()是 exit()函数的别名. 该函数只接受一个参数, 可以是一个程序返回的数值或是一个字符串, 也可以不输入参数, 结果没有返回值.
参考: 虽然两者相同, 但通常使用中也有细微的选择性. 例如:
当传递给 exit 和 die 函数的值为 0 时, 意味着提前终止脚本的执行, 通常用 exit()这个名字.
- echo "1111";
- exit(0);
- echo "2222"; // 22222 不会被输出, 因为程序运行到 exit(0)时, 脚本已经被提前终止,"马上断气".
当程序出错时, 可以给它传递一个字符串, 它会原样输出在系统终端上, 通常使用 die()这个名字.
- $fp=fopen("./readme.txt","r") or die("不能打开该文件");
- // 这种情况下, 如果 fopen 函数被调用返回布尔值 false 时, die()将立即终止脚本, 并马上打印
- // 传递给它的字符串,"死前还能说一两句话".
回到前面这个话题, 下面代码为什么不输出 123 到页面?
- <?php
- die(123);
- // 或 exit(123);
- ?>
自己总结:
1, 功能上, die() 就等同于 exit();
2,PHP 有多种运行方式, 即可网站形式, 也可脚本形式(不需要 web 服务器).
当 PHP 为脚本形式运行时, 建议用 exit():
比如说 Bash Shell 脚本语言, 当它要停止运行时, 会用 exit()函数终止脚本, 并允许输出点内容到运行环境(一般是存储到一个全局变量中), 但输出的内容只能是 数字, 表示 "命令的结束状态".
相关参考链接: http://blog.snsgou.com/post-711.html
也就是说, exit(123)只是输出一种运行状态 123, 北京夜场招聘 [http://www.bblktv.com/] 而不是真的要向控制台输出 123. 如果要向控制台输出 123, 代码得改成如下形式:
- <?php
- exit('123');
- ?>
当 PHP 为网站形式运行时, 建议用 die():
但此时 die(数字), 就没啥意义, 因为它不会向页面输出 数字 字符串, 也就是说, 如果想让页面终止并且输出数字的话, 得改成如下形式. 北京夜场招聘
- <?php
- die('123');
- ?>
来源: http://www.bubuko.com/infodetail-2732456.html