Home  >  Article  >  php教程  >  PHP中exit()与die()的区别

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

WBOY
WBOYOriginal
2016-06-21 08:46:511722browse

本篇文章简要分析一下在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,而不是真的要向控制台输出 123。如果要向控制台输出123,代码得改成如下形式:

<?php
exit('123');
?>

当PHP为网站形式运行时,建议用die():

但此时 die(数字),就没啥意义,因为它不会向页面输出 数字 字符串,也就是说,如果想让页面终止并且输出数字的话,得改成如下形式

<?php
die('123');
?>

您可能感兴趣的文章

  • PHP中return 和 exit 、break和contiue 区别与用法
  • php中echo,print,print_r,var_export,var_dump 的用法与区别
  • php中empty,is_null,isset的区别详解
  • PHP中跳出多重循环使用break,continue,goto,return,exit的用法和区别
  • ThinkPHP中execute和query方法的区别
  • javascript中scrollHeight,scrollWidth,scrollLeft,scrolltop等区别小解
  • php中在变量和函数前加static关键字之后的区别
  • php session和cookie的区别



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn