PHP에서 0으로 나누기 예외 잡기
런타임에 생성된 동적 수학 표현식을 처리할 때 0으로 나누기에 대한 적절한 오류 처리를 보장하는 것은 다음과 같습니다. 중대한. 전통적인 예외 처리 메커니즘이 작동하지 않을 수 있으므로 eval만으로는 충분하지 않을 수 있습니다.
PHP7에서는 이러한 시나리오를 처리하기 위해 DivisionByZeroError 예외가 도입되었습니다. 이 예외를 사용하면 0으로 나누기 오류를 효과적으로 잡을 수 있습니다.
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 }
귀하의 경우 동적으로 구성된 표현식은 다음과 유사할 수 있습니다.
"$foo + $bar * ( $baz / ( $foz - $bak ) )"
$foz가 다음과 같은 경우 $bak를 사용하면 이 표현식은 암시적으로 0으로 나누게 됩니다. 평가 내에 DivisionByZeroError 예외 처리를 통합하여 이 문제를 해결할 수 있습니다.
if (@eval("try{$result = $expresion;}catch(\DivisionByZeroError $e){$result = 0;}") === FALSE) { $result = 0; } echo "The result is: $result";
또는 PHP7 이전 버전의 PHP에서는 ErrorException 클래스를 활용하여 런타임 오류를 처리할 수 있습니다.
if (@eval("try{$result = $expresion;}catch(\Exception $e){$result = 0;}") === FALSE) { $result = 0; } echo "The result is: $result";
위 내용은 동적 PHP 표현식에서 0으로 나누기 오류를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!