PHP函数register_shutdown_function的使用示例
<?php namespace com\antp; class CustomHandle { public static function systemError() { $message = '';
$error = error_get_last(); if ($error && $error['type'] === E_ERROR ) { //捕获致命错误,同时记录错误信息 $separator = "\r\n"; $message .= "错误:" . $error['message'] . $separator; $message .= "文件:" . $error['file'] . $separator; $message .= "行数:" . $error['line'] . $separator; $message = str_replace($separator, '<br />', $message); header('Location:http://'.$_SERVER['HTTP_HOST'].'/error.php'); exit; }else{ //此处处理其它一些业务逻辑 } } }
函数简介
当PHP程序执行完成后,自动执行register_shutdown_function函数,该函数需要一个参数,用来指定由谁处理这些后续的工作。其中,程序执行完成,分为以下几种情况:
第一种:php代码执行过程中发生错误
第二种:php代码顺利执行成功
第三种:php代码运行超时
第四种:页面被用户强制停止
调用方法:该调用方法兼容老版本的php,把回调函数作为参数,而不是传入一个类名、方法名的一个数组作为参数。
require 'CustomHandle.php';
register_shutdown_function(function(){
com\antp\CustomHandle::systemError();
});