溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

register_shutdown_function函數(shù)如何在PHP中使用

發(fā)布時(shí)間:2020-12-09 16:26:18 來(lái)源:億速云 閱讀:159 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

register_shutdown_function函數(shù)如何在PHP中使用?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

當(dāng)程序在線上運(yùn)行時(shí),如果遇到BUG,想不在前端輸出錯(cuò)誤信息,同時(shí)能及時(shí)郵件通知開(kāi)發(fā)者,register_shutdown_function函數(shù)就可以派上用場(chǎng)了。

注冊(cè)一個(gè)會(huì)在腳本執(zhí)行完成或者 exit() 后被調(diào)用的函數(shù)。

可以多次調(diào)用 register_shutdown_function() ,這些被注冊(cè)的回調(diào)會(huì)按照他們注冊(cè)時(shí)的順序被依次調(diào)用。 如果你在注冊(cè)的方法內(nèi)部調(diào)用 exit(), 那么所有處理會(huì)被中止,并且其他注冊(cè)的中止回調(diào)也不會(huì)再被調(diào)用。

register_shutdown_function 函數(shù),當(dāng)我們的腳本執(zhí)行完成或意外死掉導(dǎo)致PHP執(zhí)行即將關(guān)閉時(shí),我們的這個(gè)函數(shù)將會(huì) 被調(diào)用,可以配合 error_get_last 使用,獲取錯(cuò)誤信息。

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

callable 回調(diào)函數(shù)

parameter 可以通過(guò)傳入額外的參數(shù)來(lái)將參數(shù)傳給中止函數(shù)

DEMO1:

//關(guān)閉錯(cuò)誤報(bào)告
error_reporting(0);
//實(shí)現(xiàn)自己的錯(cuò)誤信息展示
register_shutdown_function(‘myShutdown‘);
$debug = true;
function myShutdown() {
  global $debug;
  // 無(wú)論錯(cuò)誤是否發(fā)生,這句都會(huì)執(zhí)行
  echo ‘ERROR‘ , ‘<br/>‘;
  if (!$debug) {
    $error = error_get_last();
    // todo 可以在這里做郵件發(fā)送提醒 或 錯(cuò)誤日志收集
    var_export($error);
  }
}

DEMO2

// 回到函數(shù)帶參數(shù):記錄當(dāng)前請(qǐng)求URL
$current_page = htmlspecialchars($_SERVER[‘SCRIPT_NAME‘], ENT_QUOTES, ‘UTF-8‘);
$current_page .= $_SERVER[‘QUERY_STRING‘] &#63; ‘&#63;‘.htmlspecialchars($_SERVER[‘QUERY_STRING‘], ENT_QUOTES, ‘UTF-8‘) : ‘‘;
register_shutdown_function(function ($current_page) {
  //todo send email or log
}, $current_page);
error_get_last() 
//錯(cuò)誤信息查看:http://php.net/manual/zh/errorfunc.constants.php

關(guān)于register_shutdown_function函數(shù)如何在PHP中使用問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI