Gestion de la division par zéro erreur en PHP
Lors de l'évaluation d'expressions mathématiques dynamiques à l'aide d'eval, il est crucial de garantir la gestion des exceptions pour la division par zéro erreur. L'exemple fourni démontre que les blocs try-catch conventionnels n'interceptent pas ces erreurs.
Solution sur PHP7 et supérieur
Dans PHP7 et versions ultérieures, la classe d'exception DivisionByZeroError a été introduit spécifiquement pour détecter la division par zéro erreur. Voici comment l'implémenter :
try { $result = eval($expression); } catch (DivisionByZeroError $e) { $result = 0; }
Gestion personnalisée des erreurs pour PHP7 et versions antérieures
Si vous devez prendre en charge les versions PHP inférieures à 7, un gestionnaire d'erreurs personnalisé peut être utilisé pour intercepter la division par zéro erreur. Ce gestionnaire peut traduire ces erreurs en une exception interceptée :
function custom_error_handler($errno, $errstr) { if ($errno === E_DIVISION_BY_ZERO) { throw new Exception('Division by zero'); } }
Assurez-vous d'enregistrer le gestionnaire d'erreurs personnalisé avant d'évaluer l'expression :
set_error_handler('custom_error_handler'); $result = eval($expression); restore_error_handler();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!