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 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
Jun 02 Javascript
javascript 有趣而诡异的数组
Apr 06 Javascript
jquery 表单下所有元素的隐藏
Jul 25 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
JavaScript引用类型和基本类型详解
Jan 06 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
Dec 08 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
原生js实现贪吃蛇游戏
Oct 26 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设计模式 Delegation(委托模式)
2011/06/26 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python类的基础入门知识
2008/11/24 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
python复合条件下的字典排序
2020/12/18 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
村抢险救灾方案
2014/05/09 职场文书
责任心演讲稿
2014/05/14 职场文书
公务员考察材料
2014/12/23 职场文书
离婚起诉书范本
2015/05/18 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python访问Redis的详细操作
2021/06/26 Python