php register_shutdown_function函数详解


Posted in Javascript onJuly 23, 2017

设定错误和异常处理三函数

register_shutdown_function(array(‘Debug','fatalError')); //定义PHP程序执行完成后执行的函数
set_error_handler(array(‘Debug','appError')); // 设置一个用户定义的错误处理函数
set_exception_handler(array(‘Debug','appException')); //自定义异常处理。

功能:register_shutdown_function() 函数可实现当程序执行完成后执行的函数,其功能为可实现程序执行完成的后续操作。程序在运行的时候可能存在执行超时,或强制关闭等情况,但这种情况下默认的提示是非常不友好的,如果使用register_shutdown_function()函数捕获异常,就能提供更加友好的错误展示方式,同时可以实现一些功能的后续操作,如执行完成后的临时数据清理,包括临时文件等。

可以这样理解调用条件:

1、当页面被用户强制停止时

2、当程序代码运行超时时

3、当PHP代码执行完成时,代码执行存在异常和错误、警告

example1:

<?php
function test() {
  echo "test()";
}
register_shutdown_function("test");
echo "show: ";

//将输出
show:test()

example2:

<?php
 class ClassDemo {
     public function __construct() {
       register_shutdown_function(array($this, "f"));
     }
  
     public function f() {
       echo "f()";
     }
   }
 
   $demo = new ClassDemo();
   echo "before </br>";

//将输出
before
f()

example3:

<?php
function f($str) {
    echo $str."<br>";
}
 
register_shutdown_function("f","hello");

  class ClassDemo {
    public function __construct() {
      register_shutdown_function(array($this, "f"),"hello");
    }
 
    public function f($str) {
      echo "f():".$str;
    }
  }

$demo = new ClassDemo();
echo "before </br>";

//将输出
before
hello
f():hello

注意事项

1,register_shutdown_function()函数可重复调用,但执行的顺序与注册的顺序相同
2,如果在调用register_shutdown_function()函数之前有exit()函数调用,register_shutdown_function()函数将不能执行
3,PHP4后支持注册函数参数传递
4,在某些服务端,如Apache,当前目录在register_shutdown_function()函数中能够改变
5,register_shutdown_function()函数执行在headers发送之后

Javascript 相关文章推荐
游戏人文件夹程序 ver 3.0
Jul 14 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
JS复制到剪贴板示例代码
Oct 30 Javascript
javascript 实现 原路返回
Jan 21 Javascript
Jquery中CSS选择器用法分析
Feb 10 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
javascript设置文本框光标的方法实例小结
Nov 04 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 #Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 #Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 #jQuery
基于Vue.js实现tab滑块效果
Jul 23 #Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 #Javascript
原生js FileReader对象实现图片上传本地预览效果
Mar 27 #Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 #Javascript
You might like
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
介绍一下grep命令的使用
2012/06/28 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
优秀教师工作感言
2014/02/16 职场文书
股权转让协议书范本
2014/04/12 职场文书
导游个人求职信
2014/04/25 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js