前言
任何程序員在開發時都可能遇到過一些失誤,或其他原因造成錯誤的發生。當然,用戶如果不願意或不遵循應用程序的約束,也會在使用時引起一些錯誤發生。本文主要介紹在php中用 register_shutdown_function進行異常處理的方法,有需要的可以一起學習學習。
實例詳解
比如判斷一個腳本是否執行完成,可以設置一個屬性為 false,在執行完成時設為 true,最後通過 register_shutdown_function 函數指定的方法進行判斷,並做進一步異常處理,如代碼所示:
class IndexController extends Controller
{
/**
* 腳本執行是否完成
* @var bool
*/
protected $complete = false;
public function __construct()
{
register_shutdown_function([$this, 'shutdown']);
}
/**
* 異常處理
*/
public function shutdown()
{
if ($this->complete === false) {
dump('www.tanteng.me'); //此處應該輸出日志並進行異常處理操作
}
}
}
這樣一來,可以快速定位腳本是否中斷,通過 register_shutdown_function 處理異常並提高程序的健壯性,並且可以記錄程序中斷的狀態,方便通過日志快速定位問題。
register_shutdown_function 執行機制
PHP 把要調用的函數調入內存。當頁面所有 PHP 語句都執行完成時,再調用此函數。注意,在這個時候從內存中調用,不是從 PHP 頁面中調用,所以如果有路徑信息,應使用絕對路徑,因為 PHP 已經當原來的頁面不存在了。就沒有什麼相對路徑可言。
可以這樣理解調用條件:
1、當頁面被用戶強制停止時
2、當程序代碼運行超時時
3、當PHP代碼執行完成時
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用PHP能有所幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。