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的时候写的学习笔记
Dec 30 Javascript
js移除事件 js绑定事件实例应用
Nov 28 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
JQuery显示、隐藏div的几种方法简明总结
Apr 16 Javascript
js中this用法实例详解
May 05 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
JavaScript中var的重要性实例分析
Jul 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php checkbox 取值详细说明
2010/08/19 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
python实现剪切功能
2019/01/23 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
初学者学习Python好还是Java好
2020/05/26 Python
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
培训主管的岗位职责
2013/11/23 职场文书
党课培训心得体会
2014/09/02 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
python中pycryto实现数据加密
2022/04/29 Python
Django框架之路由用法
2022/06/10 Python