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数据加密详解
Jun 18 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php的一个简单加密解密代码
Jan 14 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
PHP合并两个或多个数组的方法
Jan 20 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php下获取http状态的实现代码
2014/05/09 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
prototype 的说明 js类
2006/09/07 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python日志logging模块使用方法分析
2019/05/23 Python
Puppeteer使用示例详解
2019/06/20 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
行政助理岗位职责范文
2013/12/03 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
大学生社会实践方案
2014/05/11 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
英语感谢信范文
2015/01/20 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL