在PHP 中處理除零錯誤
使用eval 計算動態數學表達式時,確保除零錯誤的異常處理至關重要。提供的範例示範了傳統的 try-catch 區塊不會攔截這些錯誤。
PHP7 及以上版本的解決方案
在 PHP7 及更高版本中,DivisionByZeroError 異常類別已被專門為捕獲除零錯誤而引入。實作方法如下:
try { $result = eval($expression); } catch (DivisionByZeroError $e) { $result = 0; }
PHP7 及以下版本的自訂錯誤處理
如果您需要支援7 以下的PHP 版本,可以使用自訂錯誤處理程式用於攔截除零錯誤。此處理程序可以將這些錯誤轉換為捕獲的異常:
function custom_error_handler($errno, $errstr) { if ($errno === E_DIVISION_BY_ZERO) { throw new Exception('Division by zero'); } }
確保在計算表達式之前註冊自訂錯誤處理程序:
set_error_handler('custom_error_handler'); $result = eval($expression); restore_error_handler();
以上是如何處理 PHP 中的除零錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!