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 Array交叉表实现代码
Aug 05 PHP
php 高性能书写
Dec 11 PHP
php设计模式小结
Feb 15 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
PDO::errorCode讲解
Jan 28 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
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
夯基础之手撕javascript继承详解
2020/11/09 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python下载的11种姿势(小结)
2020/11/18 Python
python switch 实现多分支选择功能
2020/12/21 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
学生会主席就职演讲稿
2014/01/14 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
颐和园导游词
2015/01/30 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
运动会3000米加油稿
2015/07/21 职场文书
接收函
2019/04/22 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python