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 相关文章推荐
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
php中日期加减法运算实现代码
Dec 08 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
PHP代码审核的详细介绍
Jun 13 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
PHP基本语法实例总结
Sep 09 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 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
Zerg建筑一览
2020/03/14 星际争霸
PHP SQLite类
2009/05/07 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
js控制table合并具体实现
2014/02/20 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
移风易俗倡议书
2014/04/15 职场文书
2014中考励志标语
2014/06/05 职场文书
会计个人实习计划书
2014/08/15 职场文书
运动会广播稿200字
2014/10/18 职场文书
财务工作失误检讨书
2015/02/19 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python