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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
解决中英文字符串长度问题函数
Jan 16 PHP
PHP 多进程 解决难题
Jun 22 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
浅析php原型模式
Nov 25 PHP
typecho插件编写教程(五):核心代码
May 28 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
浅析php原型模式
2014/11/25 PHP
帝国cms常用标签汇总
2015/07/06 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
python提示No module named images的解决方法
2014/09/29 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python aiohttp的使用详解
2019/06/20 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
计算机相关的自我评价
2014/01/15 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
项目建议书格式
2014/03/12 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
运动会100米广播稿
2015/08/19 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android