Comment supprimer l'erreur "Division par zéro" et définir le résultat sur null pour l'application entière? En disant «pour toute l'application», je veux dire que ce n'est pas pour une seule expression. Au lieu de cela, chaque fois qu'une erreur "Division par zéro" se produit, le résultat est automatiquement défini sur null et aucune erreur ne sera générée.Comment supprimer l'erreur "Division par zéro" et définir le résultat sur null pour l'ensemble de l'application?
Répondre
Cela devrait faire l'affaire.
$a = @(1/0);
if(false === $a) {
$a = null;
}
var_dump($a);
sorties
NULL
Voir les refs ici error controls.
EDIT
function division($a, $b) {
$c = @(a/b);
if($b === 0) {
$c = null;
}
return $c;
}
En tout lieu substitut 1/0
par l'appel de fonction division(1,0)
.
EDIT - Sans troisième variable
function division($a, $b) {
if($b === 0)
return null;
return $a/$b;
}
Wow c'est si simple (j'aurais aimé y penser) mais est-ce que ça le met à zéro? –
mmm droite, mais je suis toujours perplexe par son édition: P –
Ceci est le meilleur concept général. Cependant, il échoue quand 'a == 0'. Vous devriez changer le conditionnel pour être 'if ($ c === false)'. Mais en fait, vous devriez juste vérifier si '$ b == 0'. ;) – Matthew
Simple comme .. bien abc * 123-pi
$number = 23;
$div = 0;
//If it's not 0 then divide
if($div != 0)
$result = $number/$div;//is set to number divided by x
}
//if it is zero than set it to null
else{
$result = null;//is set to null
}
En fonction
function mydivide($divisior, $div){
if($div != 0)
$result = $divisor/$div;//is set to number divided by x
}
//if it is zero than set it to null
else{
$result = null;//is set to null
}
return $result;
}
Utilisez il comme celui-ci
$number = mydivide(20,5)//equals four
Je ne peux pas penser à une façon de ensemble chaque fois il y a division mais j'utiliser la fonction et le renommer à quelque chose comme « d » il est court!
C'est une solution horrible, mais heureusement, vous ne serez pas l'utiliser parce que la variable est définie à false
au lieu de null
.
function ignore_divide_by_zero($errno, $errstring)
{
return ($errstring == 'Division by zero');
}
set_error_handler('ignore_divide_by_zero', E_WARNING);
Dans votre cas, je créerais une fonction pour votre division.
Qu'en est-il en utilisant un opérateur ternaire, comme ceci:
$a = $c ? $b/$c : null;
Cela ne gère pas vraiment l'aspect 'application complète'. –
- 1. ReportViewer Division par zéro
- 2. Division par zéro erreurs
- 3. division par zéro erreur
- 4. Division par zéro Avertissement
- 5. Comment définir un pointeur sur l'emplacement zéro?
- 6. Comment fonctionnent les exceptions de division par zéro?
- 7. SQL Null défini sur zéro pour ajouter
- 8. Xcode plante avec division par zéro
- 9. Comment éviter une division apparemment inévitable par zéro
- 10. Pourquoi NULL obtient un résultat différent de zéro?
- 11. Comment définir la précision pour la division EL sur JSF
- 12. Sortir de la division par zéro dans la requête simple
- 13. division PostgreSQL par zéro lors de la commande
- 14. T-SQL 2005 - Erreur de division par zéro rencontrée
- 15. Erreur intermittente "Division par zéro" dans les pages ASP classiques
- 16. Erreur de division par zéro dans la procédure stockée
- 17. Définir UIView.frame.size.height sur zéro pour masquer le contenu?
- 18. Comment définir NSMutableString sur null?
- 19. Comment définir le fichier mainfest.xml pour supprimer l'étiquette par défaut
- 20. Supprimer le zéro de début de 0clock
- 21. Question sur la valeur NULL vs zéro
- 22. Pourquoi cette division aboutit à zéro?
- 23. Le résultat de getElementById est null?
- 24. Django: Comment définir un champ sur NULL?
- 25. Comment définir un objet sur null
- 26. C++ & GCC: Comment l'implémentation C++ de GCC gère-t-elle la division par zéro?
- 27. Pause dans le débogueur C# pour diviser par zéro
- 28. Pourquoi cette erreur de division par zéro se produit-elle uniquement dans le code optimisé?
- 29. Franchir le résultat de la division en Javascript
- 30. comment regrouper la division de données par fonction de division
Si vous cherchez C++ possibilité de surcharge de l'opérateur, de sorte que le php ne le supporte pas, voir la discussion ici: http: // stackoverflow .com/questions/787692/operator-overloading-in-php – Igor
La suppression des erreurs est généralement considérée comme une mauvaise pratique. Vous pouvez utiliser 'try' et' catch', mais pas '@'. Vous devez écrire votre code de manière à ce que les valeurs incorrectes soient nettoyées et qu'aucune erreur ou avertissement ne soit émis par l'exécution standard de votre code. – Mike
dans 'SQL Server', il y a un petit truc' NULLIF() 'http://www.bennadel.com/blog/984-using-nullif-to-prevent-divide-by-zero-errors-in-sql .htm – Jaider