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实现ping
Oct 09 PHP
Smarty Foreach 使用说明
Mar 23 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 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防注入安全代码
2008/04/09 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
js实现上传并压缩图片效果
2018/01/10 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python装饰器与递归算法详解
2016/02/18 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
python中模块的__all__属性详解
2017/10/26 Python
Python并行分布式框架Celery详解
2018/10/15 Python
python简单贪吃蛇开发
2019/01/28 Python
python实现自动化上线脚本的示例
2019/07/01 Python
python字符串格式化方式解析
2019/10/19 Python
Python字符串及文本模式方法详解
2020/09/10 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
综治维稳工作汇报
2014/10/27 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
答辩状格式范本
2015/05/22 职场文书
Redis基本数据类型List常用操作命令
2022/06/01 Redis