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 相关文章推荐
基于文本的留言簿
Oct 09 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
PHP经典面试题集锦
Mar 19 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP实现GIF图片验证码
Nov 04 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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的栏目导航程序
2006/10/09 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
javascript 写类方式之四
2009/07/05 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
Python 类的特殊成员解析
2018/06/20 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
python爬虫---requests库的用法详解
2020/09/28 Python
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
历史学专业推荐信
2013/11/06 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
论文答辩开场白大全
2015/05/27 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
学校食堂管理制度
2015/08/04 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
python读取mnist数据集方法案例详解
2021/09/04 Python