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 相关文章推荐
APMServ使用说明
Oct 23 PHP
修改了一个很不错的php验证码(支持中文)
Feb 14 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
php绘制一个扇形的方法
Jan 24 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
Jun 04 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
javascript数组去重小结
2016/03/07 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python运算符重载详解及实例代码
2017/03/07 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
python如何求解两数的最大公约数
2018/09/27 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python中使用np.delete()的实例方法
2021/02/01 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
前台接待员岗位职责
2014/01/02 职场文书
旅游活动总结
2014/08/27 职场文书
新郎答谢词
2015/01/04 职场文书
大学体育课感想
2015/08/10 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
业余无线电通联Q语
2022/02/18 无线电
Python实现归一化算法详情
2022/03/18 Python
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers