php捕獲致命錯(cuò)誤的方法:可以利用register_shutdown_function()函數(shù)來(lái)捕獲致命錯(cuò)誤。register_shutdown_function()函數(shù)表示PHP在程序結(jié)束時(shí)觸發(fā)某個(gè)函數(shù)行為。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供臨縣網(wǎng)站建設(shè)、臨縣做網(wǎng)站、臨縣網(wǎng)站設(shè)計(jì)、臨縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、臨縣企業(yè)網(wǎng)站模板建站服務(wù),十載臨縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
利用register_shutdown_function()函數(shù)來(lái)捕獲致命錯(cuò)誤,該函數(shù)表示 PHP 在程序結(jié)束時(shí)觸發(fā)某個(gè)函數(shù)行為。
(推薦教程:php圖文教程)
語(yǔ)法:
void register_shutdown_function(callable $callback[, mixed $parameter [, mixed $... ]])
注冊(cè)一個(gè) callback ,它會(huì)在腳本執(zhí)行完成或者 exit() 后被調(diào)用。
參數(shù):
callback:待注冊(cè)的中止回調(diào)
parameter:可以通過傳入額外的參數(shù)來(lái)將參數(shù)傳給中止函數(shù)
程序結(jié)束有四種情況:
php代碼執(zhí)行過程中發(fā)生錯(cuò)誤
php代碼順利執(zhí)行成功
php代碼運(yùn)行超時(shí)
頁(yè)面被用戶強(qiáng)制停止
(視頻教程推薦:編程入門)
舉例:
我們自定義一個(gè)行為:
<?php /** * Created by PhpStorm. * User: Xavier * Date: 2018/6/3 * Time: 12:16 */ class RegisterShutDownFunction { /** * @author Xavier * @desc php 程序運(yùn)行結(jié)束時(shí)候需要運(yùn)行的函數(shù) */ public static function register() { if ($error = error_get_last()) { // $filename 必須是一個(gè)絕對(duì)路徑 if (!defined('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME')) { $filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'register_shutdown_function.log'; } else { $filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME; } $message = '時(shí)間 : ' . date('Y-m-d H:i:s') . PHP_EOL; $message .= '文件 : ' . $error['file'] . PHP_EOL; $message .= '行數(shù) : ' . $error['line'] . PHP_EOL; $message .= '錯(cuò)誤 : ' . $error['message'] . PHP_EOL; $message .= '類型 : ' . $error['type'] . PHP_EOL . PHP_EOL; file_put_contents($filename, $message, FILE_APPEND); } } }
應(yīng)用:
<?php /** * Created by PhpStorm. * User: Xavier * Date: 2018/6/3 * Time: 12:27 */ // 定義一個(gè)常量來(lái)記錄程序停止后,出現(xiàn)錯(cuò)誤的 LOG 日志文件 define('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME', dirname(__FILE__) . DIRECTORY_SEPARATOR . '11.log'); // 包含異常處理的類文件 include 'lib/RegisterShutDownFunction.php'; $registerShutDownFunction = new RegisterShutDownFunction(); // register_shutdown_function 函數(shù)必須在所有的程序執(zhí)行之間注冊(cè) register_shutdown_function(array($registerShutDownFunction, 'register')); // 注冊(cè)成功之后調(diào)用一個(gè)不存在的方法 aa(); aa();
錯(cuò)誤日志:
時(shí)間 : 2018-06-03 04:56:02 文件 : /Users/x/www/php/exception/2.php 行數(shù) : 17 錯(cuò)誤 : Uncaught Error: Call to undefined function aa() in /Users/x/www/php/exception/2.php:17 Stack trace: #0 {main} thrown 類型 : 1
文章標(biāo)題:php怎么捕獲致命錯(cuò)誤
當(dāng)前路徑:http://jinyejixie.com/article30/cphgpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)