后端开发|PHP问题
php,致命错误
后端开发-PHP问题
php导入excel源码,ubuntu登录欢迎语句,tomcat服务加载数据慢,爬虫 状态 301,php是什么软件,渝北区一站式seo推广代运营lzw
shift 源码,vscode 常用功能,升级ubuntu 20.04,tomcat删除默认文档,爬虫ubuntu,php 判断id,海南seo优化哪家实惠,展示网站源码,简单电商网站后台管理系统模板lzw
利用register_shutdown_function()函数来捕获致命错误,该函数表示 PHP 在程序结束时触发某个函数行为。
qq虚假红包源码,查看显卡驱动ubuntu,tomcat9 与jdk,爬虫百万mysql,php实战案例,sem营销引流怎么做seo顾问lzw
(推荐教学:php图文教学)
语法:
void register_shutdown_function(callable $callback[, mixed $parameter [, mixed $... ]])
注册一个 callback ,它会在脚本执行完成或者 exit() 后被调用。
参数:
callback:待注册的中止回调
parameter:可以通过传入额外的参数来将参数传给中止函数
程序结束有四种情况:
php代码执行过程中发生错误
php代码顺利执行成功
php代码运行超时
页面被用户强制停止
(视频教学推荐:编程入门)
举例:
我们自定义一个行为:
<?php/** * Created by PhpStorm. * User: Xavier * Date: /6/3 * Time: 12:16 */class RegisterShutDownFunction{ /*** @author Xavier* @desc php 程序运行结束时候需要运行的函数*/ public static function register() { if ($error = error_get_last()) { // $filename 必须是一个绝对路径 if (!defined(REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME)) {$filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . egister_shutdown_function.log; } else {$filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME; } $message = 时间 : . date(Y-m-d H:i:s) . PHP_EOL; $message .= 文件 : . $error[file] . PHP_EOL; $message .= 行数 : . $error[line] . PHP_EOL; $message .= 错误 : . $error[message] . PHP_EOL; $message .= 类型 : . $error[ ype] . PHP_EOL . PHP_EOL; file_put_contents($filename, $message, FILE_APPEND); } }}
应用:
<?php/** * Created by PhpStorm. * User: Xavier * Date: /6/3 * Time: 12:27 */ // 定义一个常量来记录程序停止后,出现错误的 LOG 日志文件define(REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME, dirname(__FILE__) . DIRECTORY_SEPARATOR . 11.log);// 包含异常处理的类文件include lib/RegisterShutDownFunction.php;$registerShutDownFunction = new RegisterShutDownFunction();// register_shutdown_function 函数必须在所有的程序执行之间注册register_shutdown_function(array($registerShutDownFunction, egister));// 注册成功之后调用一个不存在的方法 aa();aa();
错误日志:
时间 : -06-03 04:56:02文件 : /Users/x/www/php/exception/2.php行数 : 17错误 : Uncaught Error: Call to undefined function aa() in /Users/x/www/php/exception/2.php:17Stack trace:#0 {main} thrown类型 : 1