採用PHP函數register_shutdown_function定義PHP程序執行完成後執行的函數

採用PHP函數register_shutdown_function定義PHP程序執行完成後執行的函數,主要討論register_shutdown_function()函數的作用和用法。

register_shutdown_function() 函數可實現當程序執行完成後執行的函數,其功能爲可實現程序執行完成的後續操作。程序在運行的時候可能存在執行超時,或強制關閉等情況,但這種情況下默認的提示是非常不友好的,如果使用register_shutdown_function()函數捕獲異常,就能提供更加友好的錯誤展示方式,同時可以實現一些功能的後續操作,如執行完成後的臨時數據清理,包括臨時文件等。

一,函數原型
void register_shutdown_function ( callback function [, mixed parameter [, mixed ...]] )

二,版本兼容
PHP 3 >= 3.0.4, PHP 4, PHP 5

三,函數基礎用法與實例

1,函數基礎用法

<?php 
function output(){ 
    echo 'output'; 
} 
register_shutdown_function('output'); 
//其它程序 
?> 

說明:定義一個output函數,當程序執行完成後將通過register_shutdown_function()函數調用output函數

2,捕獲異常並友好提示

<?php 
function output(){ 
    echo 'Fatal error.write error log'; 
} 
register_shutdown_function('output'); 
$o = new liuhui(); 
?> 

說明:實例化liuhui類是不存在的,PHP將拋出Fata錯誤,在正常的運行環境中將屏蔽錯誤,因此可使用register_shutdown_function()捕獲異常並記錄日誌

四,注意事項
1,register_shutdown_function()函數可重複調用,但執行的順序與註冊的順序相同
2,如果在調用register_shutdown_function()函數之前有exit()函數調用,register_shutdown_function()函數將不能執行
3,PHP4後支持註冊函數參數傳遞
4,在某些服務端,如Apache,當前目錄在register_shutdown_function()函數中能夠改變
5,register_shutdown_function()函數執行在headers發送之後

register_shutdown_function()函數應用場景很多,最常用的就是異常的捕獲,然後就是一些數據清理等操作,非常實用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章