Maison > développement back-end > tutoriel php > Comment puis-je gérer la division par zéro erreur en PHP ?

Comment puis-je gérer la division par zéro erreur en PHP ?

Susan Sarandon
Libérer: 2024-12-04 21:31:11
original
916 Les gens l'ont consulté

How Can I Handle Division by Zero Errors in PHP?

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;
}
Copier après la connexion

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');
    }
}
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal