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

本篇文章简要分析一下在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‘);
?>

原文地址:https://www.cnblogs.com/bblktv/p/9497050.html

时间: 2024-10-13 23:12:28

【整理分享1】PHP中exit()与die()的区别的相关文章

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

先思考一个问题: 如下代码会向页面显示什么? <?php die(123); ?> 曾经有段时间我一直认为 页面会显示 123,但实践结果告诉我,答案错了,页面一片空白! 一直不知道为什么,死活不输出123,为了让页面输出123,我把它修改为如下代码: <?php echo '123'; die(); ?> 网上的一段资料: PHP中exit()与die()的区别 PHP手册:die()Equivalent to exit(). 说明:die()和exit()都是中止脚本执行函数:

Linux编程中的坑——C++中exit和return的区别

今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: [cpp] view plain copy int main() { 创建一个分离线程(): return 0: } 后来百度)了一下,原来在main()函数中写return,会被编译器优化成,也会像exit一样直接杀死所有进程,所以分离出来的线程什么都没干,就随着进程一起挂掉了. 所以多线程编程中,main()函数想退出线程应当使用 [c

Linux中exit与_exit的区别

在exit,_exit的区别 - exit()与_exit()函数的区别(Linux系统中)2012-03-20 15:19:53 分类: LINUX 注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);可读性比较好一点. 作为系统调用而言,_exit和exit是一对孪生兄弟,它们究竟相似到什么程度,我们可以从Linux的源码中

PHP中exit,exit(0),exit(1),exit(&#39;0&#39;),exit(&#39;1&#39;),die,return的区别

die('1')  die()和exit()都是中止脚本执行函数:其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别名.该函数只接受一个参数,可以是一个程序返回的数值或是一个字符串,也可以不输入参数,结果没有返回值. 参考:虽然两者相同,但通常使用中也有细微的选择性. 当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字. echo "1111"; exit(0); echo "2222"; 当

【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会写生产者.消费者问题,完全消化理解) 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 6. 用户态和核心态的区别. 7. 用户栈和内核栈的区别. 8. 内存池.进程池.线程池.(c++程序员必须掌握) 9. 死锁的概念,导致死锁的原因. 10. 导致死锁的四个必要条件. 11. 处理死锁

IntelliJ IDEA for mac 快捷操作有什么?IntelliJ IDEA 常用快捷键整理分享

IntelliJ IDEA mac是一款全面且功能丰富的Java IDE,可以为您提供JVM和Android开发所需的所有工具,同时支持最新的先进技术和框架,因此您可以在任何情况下高效工作.IntelliJ IDEA for mac 快捷操作有什么?如果你能掌握一些滴答清单IntelliJ IDEA for mac的快捷操作,可以让你使用该软件的时候感觉更顺手.接下来,小编给大家分享一些IntelliJ IDEA 常用快捷键,希望对大家有所帮助! ? Command? ShiftHome Fn

lr中exit(-1)和return 0的区别

LR脚本实践:关于lr中exit(-1)和return 0的区别 exit(-1):从当前action里面exit(-1)所在行,当前迭代里面直接退出来,终止运行: return 0:忽略当前action里面return 0后面的脚本,直接运行下一个action,以及下一个迭代: 比如做了个测试: Action6() { int count = 0; if (count ==0) { lr_output_message("%d",count); exit(-1); } lr_outpu

整理了一些.NET中的方案应用视频给大家

1.方案:ASP.NET开发RSS新闻发布订阅技术方案 http://edu.ibeifeng.com/view-index-id-162.html 2.方案:ASP.NET开发在线编辑器模块技术方案 http://edu.ibeifeng.com/view-index-id-161.html 3.方案:如何操作Excel文件带项目 http://edu.ibeifeng.com/view-index-id-159.html 4.方案:如何以流式方式读写文本文件 http://edu.ibeif

Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题

前言 近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清.这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题. 一.微博登录和分享 微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了.这里不提了,说两个常常遇到过问题. 1.登录后停留在授权页,也就是登录后没有返回我们的应用.排除代码方面的原因后.还有几个