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()函數應用場景很多,最常用的就是異常的捕獲,然後就是一些數據清理等操作,非常實用。