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