Wie unterdrückt man den Fehler "Division durch Null" und setzt das Ergebnis auf Null für die gesamte Anwendung? Indem ich "für die ganze Anwendung" sage, meine ich, dass es nicht für einen einzelnen Ausdruck ist. Bei einem Fehler "Division durch Null" wird das Ergebnis automatisch auf null gesetzt, und es wird kein Fehler ausgegeben.Wie unterdrückt man den Fehler "Division durch Null" und setzt das Ergebnis für die gesamte Anwendung auf null?
Antwort
Dies sollte den Trick tun.
$a = @(1/0);
if(false === $a) {
$a = null;
}
var_dump($a);
Ausgänge
NULL
Siehe den Refs hier error controls.
EDIT
function division($a, $b) {
$c = @(a/b);
if($b === 0) {
$c = null;
}
return $c;
}
In jedem Ort Ersatz 1/0
durch den Funktionsaufruf division(1,0)
.
EDIT - Ohne dritten Variable
function division($a, $b) {
if($b === 0)
return null;
return $a/$b;
}
Wow, das ist so einfach (ich wünschte, ich hätte daran gedacht), aber setzt es auf null? –
mmm richtig, aber ich bin immer noch ratlos von seiner Bearbeitung: P –
Dies ist das beste allgemeine Konzept. Es schlägt jedoch fehl, wenn 'a == 0'. Sie sollten die Bedingung so ändern, dass sie 'if ($ c === false)' ist. Aber eigentlich sollten Sie nur prüfen, ob $ b == 0 ist. ;) – Matthew
So einfach .. gut 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
}
Als Funktion
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;
}
Verwenden es wie diese
$number = mydivide(20,5)//equals four
Ich kann es nicht glauben, einen Weg zu Satz, wenn die Division dort aber ich die Funktion verwenden würde und es etwas umbenennen wie „d“ so kurz, es ist!
Dies ist eine schreckliche Lösung, aber zum Glück, Sie werden es nicht verwenden, da die Variablen false
gesetzt statt null
.
function ignore_divide_by_zero($errno, $errstring)
{
return ($errstring == 'Division by zero');
}
set_error_handler('ignore_divide_by_zero', E_WARNING);
In Ihrem Fall würde ich eine Funktion erstellen, die Ihre Abteilung für Sie erledigt.
Was einen ternären Operator über die Verwendung, etwa so:
$a = $c ? $b/$c : null;
Dies behandelt nicht wirklich den Aspekt 'ganze Anwendung'. –
- 1. numpy.arange Division durch Null Fehler
- 2. Weird Division durch Null Fehler
- 3. gcc: Division durch Null
- 4. Division durch Null Überprüfung
- 5. Warum setzt Integer.TryParse bei einem Fehler das Ergebnis auf Null?
- 6. Division durch Null Warnung
- 7. Division durch Null Fehler, wie kann ich das beheben?
- 8. Division durch Null - C-Programmierung
- 9. Division durch Null mit Potenzfunktion
- 10. php - "Division durch Null" mit euler konstant
- 11. Mit `SUMPRODUCT` ohne Division durch Null
- 12. NumPy: Rückgabe 0 mit Division durch Null
- 13. Wie erkennt man Fehler durch Division durch Null in Visual Studio 2008 C++?
- 14. Wie behandelt man Division durch Null in MongoDB Aggregation Framework
- 15. Division durch Null in Laravel 5.1
- 16. Division durch Null Fehler bei der Verwendung von Modul
- 17. Intermittierende Division durch Null Fehler in klassischen ASP-Seiten
- 18. Magento - Achtung: Division durch Null Gd2.php
- 19. PHP-Division in Null
- 20. Wie werden Fehler durch '@' unterdrückt?
- 21. Brechen Sie in C# -Debugger für Division durch Null
- 22. Unterdrückt Null Wertetypen von durch XmlSerializer ausgesendet wird
- 23. Vermeiden Sie die Division durch Null in PostgreSQL
- 24. Split String mit allen Null-Felder unterdrückt
- 25. Lua: Wie man eine Variable auf Null setzt
- 26. Python: While-Schleife - wie vermeide ich Division durch Null?
- 27. Wie man ein eingebettetes Dokument auf null mit Mungoose setzt
- 28. Handle "Division durch Null" in der Bildverarbeitung (oder PRNU Schätzung)
- 29. Swift + iOS: Wie man notification.Object auf Null setzt?
- 30. Wie man kleine Werte in einem Array auf Null setzt?
Wenn Sie suchen C++ Betreiber Überlastung Möglichkeit, so dass die PHP unterstützt es nicht, siehe die Diskussion hier: http: // Stackoverflow .com/questions/787692/operator-overloading-in-php – Igor
Die Unterdrückung von Fehlern wird im Allgemeinen als eine schlechte Praxis angesehen. Sie können 'try' und' catch' verwenden, aber nicht '@'. Sie sollten Ihren Code so schreiben, dass falsche Werte bereinigt werden und keine Fehler oder Warnungen durch die Standardausführung Ihres Codes ausgelöst werden. – Mike
in 'SQL Server', gibt es einen kleinen Trick' NULLIF() 'http://www.bennadel.com/blog/984-using-nullif-to-prevent-divide-by-zero-errors-in-sql .htm – Jaider