Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Division durch Null-Fehler in dynamischen PHP-Ausdrücken behandeln?

Wie kann ich Division durch Null-Fehler in dynamischen PHP-Ausdrücken behandeln?

Patricia Arquette
Freigeben: 2024-12-02 20:54:11
Original
370 Leute haben es durchsucht

How Can I Handle Division by Zero Errors in Dynamic PHP Expressions?

Abfangen von Ausnahmen bei der Division durch Null in PHP

Beim Umgang mit dynamischen mathematischen Ausdrücken, die zur Laufzeit erstellt werden, wird die ordnungsgemäße Fehlerbehandlung für die Division durch Null sichergestellt entscheidend. Die alleinige Verwendung von eval reicht möglicherweise nicht aus, da herkömmliche Ausnahmebehandlungsmechanismen möglicherweise nicht funktionieren.

In PHP7 wurde die DivisionByZeroError-Ausnahme eingeführt, um solche Szenarien zu behandeln. Mit dieser Ausnahme können Sie Fehler bei der Division durch Null effektiv abfangen:

try {
    echo 1 / 0;
} catch (DivisionByZeroError $e) {
    echo "Division by zero occurred with error: $e";
} catch (ErrorException $e) {
    echo "A generic error occurred: $e";
    // Fallback for PHP versions before PHP7
}
Nach dem Login kopieren

In Ihrem Fall könnte Ihr dynamisch konstruierter Ausdruck wie folgt aussehen:

"$foo + $bar * ( $baz / ( $foz - $bak ) )"
Nach dem Login kopieren

Wenn $foz gleich ist $bak, der Ausdruck würde zu einer impliziten Division durch Null führen. Sie können dieses Problem beheben, indem Sie die Ausnahmebehandlung DivisionByZeroError in Ihre Auswertung integrieren:

if (@eval("try{$result = $expresion;}catch(\DivisionByZeroError $e){$result = 0;}") === FALSE) {
    $result = 0;
}
echo "The result is: $result";
Nach dem Login kopieren

Alternativ können Sie für PHP-Versionen vor PHP7 die ErrorException-Klasse verwenden, um etwaige Laufzeitfehler zu behandeln:

if (@eval("try{$result = $expresion;}catch(\Exception $e){$result = 0;}") === FALSE) {
    $result = 0;
}
echo "The result is: $result";
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Division durch Null-Fehler in dynamischen PHP-Ausdrücken behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage