register_shutdown_function函數(shù)是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了register_shutdown_function 函數(shù)是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

鄧州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),鄧州網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為鄧州成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的鄧州做網(wǎng)站的公司定做!

register_shutdown_function 函數(shù)是什么

php開發(fā)測試及線上的時候可以根據(jù)不同情況設(shè)定錯誤和異常處理需要用到有

設(shè)定錯誤和異常處理三函數(shù)

register_shutdown_function(array(‘Debug’,'fatalError’)); //定義PHP程序執(zhí)行完成后執(zhí)行的函數(shù)
set_error_handler(array(‘Debug’,'appError’)); // 設(shè)置一個用戶定義的錯誤處理函數(shù)
set_exception_handler(array(‘Debug’,'appException’)); //自定義異常處理。

下面講一下register_shutdown_function() 函數(shù).

功能:register_shutdown_function() 函數(shù)可實(shí)現(xiàn)當(dāng)程序執(zhí)行完成后執(zhí)行的函數(shù),其功能為可實(shí)現(xiàn)程序執(zhí)行完成的后續(xù)操作。程序在運(yùn)行的時候可能存在執(zhí)行超時,或強(qiáng)制關(guān)閉等情況,但這種情況下默認(rèn)的提示是非常不友好的,如果使用register_shutdown_function()函數(shù)捕獲異常,就能提供更加友好的錯誤展示方式,同時可以實(shí)現(xiàn)一些功能的后續(xù)操作,如執(zhí)行完成后的臨時數(shù)據(jù)清理,包括臨時文件等。

可以這樣理解調(diào)用條件:

1、當(dāng)頁面被用戶強(qiáng)制停止時

2、當(dāng)程序代碼運(yùn)行超時時

3、當(dāng)PHP代碼執(zhí)行完成時,代碼執(zhí)行存在異常和錯誤、警告

實(shí)例說明

1. 一個簡介的例子 , 調(diào)用一個函數(shù)

<?php
    function test() {
        echo "test()";
    }
    register_shutdown_function(array("test"));
    echo "show: ";
 ?>

這個例子輸出

show: test()

這個函數(shù)的作用就是在退出腳本前,調(diào)用已經(jīng)注冊的函數(shù),并執(zhí)行該函數(shù)。

2. 在類中用一個數(shù)組作為一個參數(shù)

<?php
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"));
    }
 
    public function f() {
        echo "f()";
    }
}
 
$demo = new ClassDemo();
echo "before </br>";
?>

輸出:

before
f()

3. 帶有參數(shù)的例子:

<?php
function f($str) {
        echo $str."<br>";
}
  
register_shutdown_function("f","hello");
 
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"),"hello");
    }
 
    public function f($str) {
        echo "f():".$str;
    }
}
 
$demo = new ClassDemo();
echo "before </br>";  
?>

注意事項

1,register_shutdown_function()函數(shù)可重復(fù)調(diào)用,但執(zhí)行的順序與注冊的順序相同
2,如果在調(diào)用register_shutdown_function()函數(shù)之前有exit()函數(shù)調(diào)用,register_shutdown_function()函數(shù)將不能執(zhí)行
3,PHP4后支持注冊函數(shù)參數(shù)傳遞(PHP視頻教程)
4,在某些服務(wù)端,如Apache,當(dāng)前目錄在register_shutdown_function()函數(shù)中能夠改變
5,register_shutdown_function()函數(shù)執(zhí)行在headers發(fā)送之后

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享register_shutdown_function 函數(shù)是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!

分享題目:register_shutdown_function函數(shù)是什么-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://bm7419.com/article40/dssgho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊微信公眾號、服務(wù)器托管、微信小程序、ChatGPT、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)