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 相关文章推荐
Smarty模板快速入门
Jan 04 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
php导出CSV抽象类实例
Sep 24 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
php类自动加载器实现方法
Jul 28 PHP
PHP可变变量学习小结
Nov 29 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
PHP文件操作详解
2016/12/30 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
解析vue中的$mount
2017/12/21 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
Python魔术方法详解
2015/02/14 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
python分布式计算dispy的使用详解
2019/12/22 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
中文师范生自荐信
2014/01/30 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
《值日生》教学反思
2014/02/17 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
毕业生评语大全
2015/01/04 职场文书
信用卡工作证明范本
2015/06/19 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
Python 中random 库的详细使用
2021/06/03 Python
Consul在linux环境的集群部署
2022/04/08 Servers