当程序在线上运行时,如果遇到BUG,想不在前端输出错误信息,同时能及时邮件通知开发者,register_shutdown_function函数就可以派上用场了。

注册一个会在脚本执行完成或者 exit() 后被调用的函数。

可以多次调用register_shutdown_function(),这些被注册的回调会按照他们注册时的顺序被依次调用。 如果你在注册的方法内部调用 exit(), 那么所有处理会被中止,并且其他注册的中止回调也不会再被调用。

register_shutdown_function函数,当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用,可以配合 error_get_last 使用,获取错误信息。

register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

callable 回调函数

parameter可以通过传入额外的参数来将参数传给中止函数。

DEMO1:

//关闭错误报告error_reporting(0);//实现自己的错误信息展示register_shutdown_function(‘myShutdown‘);$debug = true;function myShutdown() { global $debug; // 无论错误是否发生,这句都会执行 echo ‘ERROR‘ , ‘<br/>‘; if (!$debug) {   $error = error_get_last();   // todo 可以在这里做邮件发送提醒 或 错误日志收集   var_export($error); }}

DEMO2:

// 回到函数带参数:记录当前请求URL$current_page = htmlspecialchars($_SERVER[‘SCRIPT_NAME‘], ENT_QUOTES, ‘UTF-8‘);$current_page .= $_SERVER[‘QUERY_STRING‘] ? ‘?‘.htmlspecialchars($_SERVER[‘QUERY_STRING‘], ENT_QUOTES, ‘UTF-8‘) : ‘‘;register_shutdown_function(function ($current_page) { //todo send email or log}, $current_page);error_get_last() //错误信息查看:http://php.net/manual/zh/errorfunc.constants.php

推荐教程:PHP视频教程

更多相关文章

  1. php解析url获取url中的参数值
  2. PHP自动加载机制介绍——spl_autoload_register()函数,php类自动
  3. PHP如何为函数执行设置超时
  4. PHP二维数组按照指定的字段排序的函数
  5. PHP中 stripslashes() 函数 和 addslashes() 函数
  6. php利用mkdir()函数创建多级目录
  7. PHP最强大的随机字符串生成函数
  8. php 数组排序函数
  9. php三个函数、两种选择防止sql注入

随机推荐

  1. Android 多线程-----AsyncTask详解
  2. App Widget ————android 新一代移动
  3. Android自定义视图一:扩展现有的视图,添加
  4. Android魔术——手把手教你实现水晶球波
  5. Android实现pppoe拨号上网(一)概述
  6. 给小白分享几个学习Android的网站
  7. android从程序员到架构师之路----高焕堂
  8. Android单线程模型相关概念详解
  9. android游戏开发(三)触屏事件处理_手势识
  10. Android中的MVP架构初探