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个人网站架设连环讲(二)
Oct 09 PHP
收集的DedeCMS一些使用经验
Mar 17 PHP
php allow_url_include的应用和解释
Apr 22 PHP
php基本函数汇总
Jul 09 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
smarty模板数学运算示例
Dec 11 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP中PDO事务处理操作示例
May 02 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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 文件上传类代码
2011/08/06 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
彻底理解Python中的yield关键字
2019/04/01 Python
python for和else语句趣谈
2019/07/02 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
Python configparser模块应用过程解析
2020/08/14 Python
Python中Selenium模块的使用详解
2020/10/09 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
英文简历中的自我评价用语
2013/12/09 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
十八大宣传标语
2014/10/09 职场文书
售房协议书范本2014
2014/10/23 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
如何获取numpy array前N个最大值
2021/05/14 Python
CSS基础详解
2021/10/16 HTML / CSS
javascript对象3个属性特征
2021/11/17 Javascript
Oracle 多表查询基本语法实例
2022/04/18 Oracle