前言
任何程序員在開發時都可能遇到過一些失誤,或其他原因造成錯誤的發生。當然,用戶如果不願意或不遵循應用程序的約束,也會在使用時引起一些錯誤發生。本文主要介紹在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能有所幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。