PHP终止脚本运行三种实现方法详解


Posted in PHP onSeptember 01, 2020

PHP中,终止脚本运行有三种方式:主脚本程序中使用return、脚本中使用exit()、die(),三者所在的脚本文件他们之后的代码都不会执行。

1.die( ) 和 exit( )

在PHP中,die() 和 exit()的用法和作用是一样的。

这两个函数可以有参数,如果参数是一个字符串,则该函数会在中止脚本运行前输出字符串。

如果参数是一个整数,这个值被用做退出状态。值的范围在0到254之间。

退出状态255由PHP保留,不会被使用;状态0用于成功地终止程序。

注:PHP版本号大于4.2.0,括号里的值是整数,不会输出该参数。

因为die()和exit()的用法和作用一样,我就拿die()来举例子。

代码示例1:

在主脚本中:

<?php
header(content-type:text/html;charset=utf-8);
$a = 1;
$b = 9;
echo $a; // 输出 1
die; // 中止脚本运行,下面不在运行
$sum = $a + $b;
echo $sum; // 不被输出
?>

运行结果:

1

代码示例2:

在函数中:

<?php
header("content-type:text/html;charset=utf-8");
function A(){
echo "2"; // 输出 2
die("error"); // 中止脚本运行,并输出括号里的字符串
}
echo "1"; // 先输出 1
A(); // 调用函数
echo "钱难有"; // 不被输出
?>

运行结果:

1
2
error

解释一下例2:"钱难有"没有被输出呢?

首先PHP的执行机制是从上到下。

第一步先声明函数

第二步执行echo语句输出1

第三步调用函数A,输出2,执行 die 中止脚本运行 并输出error

小结: die( ) 和 exit( ) 不管是在主脚本或函数里都是中止脚本运行的,后面的代码都不在执行。

2. return

首先return是语言结构,它不是函数。它可以有返回值。

如果在主脚本中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值,相应的在主脚本文件中定义一个变量进行返回值的接收。

如果一个函数中包含return 语句,当调用此函数时,函数的执行只会进行到return这一步,return之后的语句都不会执行,并将return的参数作为函数的值返回。

代码示例1:

主脚本中:

<?php
header("content-type:text/html;charset=utf-8");
$name = "钱难有";
echo "红军不怕远征难"; // 输出
return; // 中止脚本运行
echo $name; // 不被输出
?>

运行结果:

红军不怕远征难

代码示例2:

函数体中:

<?php
header("content-type:text/html;charset=utf-8");
function A(){
$a = 5; $b = 4; // 定义两个局部变量
return $a + $b; // 返回 $a+$b 的值,并结束当前脚本
echo $a; // $a不在被输出
}
$sum = A(); // 调用函数 并用变量接收 return 的返回值
echo $sum; // 输出 $sum
echo "钱难有"; // 输出 "钱难有"
?>

运行结果:

9

钱难有

小结: 在主脚本中调用 return ,则脚本中止运行。在函数体调用return,如果有返回值则返回,函数里的代码不在执行。而主脚本的代码依然会运行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
多数据表共用一个页的新闻发布
Oct 09 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
php 变量定义方法
Jun 14 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
php数据库备份还原类分享
Mar 20 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP实现抽奖功能实例代码
Jun 30 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 #PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 #PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 #PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 #PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 #PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 #PHP
PHP常用header头定义代码示例汇总
Aug 29 #PHP
You might like
论坛头像随机变换代码
2006/10/09 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
js实现时间日期校验
2020/05/26 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python os用法总结
2018/06/08 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
python 进程池pool使用详解
2020/10/15 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
关于期中考试的反思
2014/02/02 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
青年文明号服务承诺
2014/03/31 职场文书
学生干部培训方案
2014/06/12 职场文书
高三毕业评语
2014/12/31 职场文书
邀请书模板
2015/02/02 职场文书
结婚当天新郎保证书
2015/05/08 职场文书