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进行拖拽
Jul 20 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
Javascript正则控制文本框只能输入整数或浮点数
Sep 02 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
Dec 24 Javascript
jquery html动态添加的元素绑定事件详解
May 24 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 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获取MSN好友列表类的实现代码
2013/06/23 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
JS随机排序数组实现方法分析
2017/10/11 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python批量转换文件编码格式
2015/05/17 Python
python实现自动重启本程序的方法
2015/07/09 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
python实现Decorator模式实例代码
2018/02/09 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python中调用其他程序的方式详解
2019/08/06 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
个人教师自我评价范文
2013/12/02 职场文书
职业生涯规划书的格式
2013/12/29 职场文书
新护士岗前培训制度
2014/02/02 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年测量员工作总结
2015/05/23 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
详细介绍python类及类的用法
2021/05/31 Python
Python OpenGL基本配置方式
2022/05/20 Python