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 中国語 Web サイトの他の関連記事を参照してください。