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.MVC的模板标签系统(二)
Sep 05 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
深入php list()函数的详解
Jun 05 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP5.5迭代生成器用法实例详解
Mar 16 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP实现发送微博消息功能完整示例
Dec 04 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统计文章排行示例
2014/03/04 PHP
php+highchats生成动态统计图
2014/05/21 PHP
php微信公众平台开发类实例
2015/04/01 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
PHP7 标准库修改
2021/03/09 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue接口请求加密实例
2020/08/11 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python set常用操作函数集锦
2017/11/15 Python
深入浅析Python传值与传址
2018/07/10 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
医科学校毕业生自荐信
2013/11/09 职场文书
高中同学会活动方案
2014/08/14 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js