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 json_encode奇怪问题说明
Sep 27 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
php适配器模式介绍
Aug 14 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
Puppet的一些技巧
2018/09/17 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
ionic3双击返回退出应用的方法
2019/09/17 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
python解析xml模块封装代码
2014/02/07 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
python破解zip加密文件的方法
2018/05/31 Python
python如何实现视频转代码视频
2019/06/17 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python编写简单端口扫描器
2019/09/04 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
为什么称python为胶水语言
2020/06/16 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
Python页面加载的等待方式总结
2021/02/28 Python
后勤自我鉴定
2013/10/13 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
旅游个人求职信范文
2014/01/30 职场文书
群众路线专项整治方案
2014/10/27 职场文书
检讨书范文大全
2015/05/07 职场文书
天那边观后感
2015/06/09 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript