현재 위치: > 최신 기사 목록> IS_FINITE를 사용하여 제로 디코딩 오류를 해결하는 일반적인 방법

IS_FINITE를 사용하여 제로 디코딩 오류를 해결하는 일반적인 방법

gitbox 2025-05-26

PHP에서 제로 디비전 오류는 일반적인 런타임 오류입니다. 특히 수학 작업을 수행 할 때 분모가 0 인 경우 프로그램이 경고 나 예외를 던지게됩니다. 이를 피하려면 일반적으로 유효한 숫자이며 0이 아닌지 확인하기 위해 Divisor의 값을 미리 확인해야합니다. PHP는 IS_FINITE () 함수를 제공하여 값이 유한 값인지 여부를 결정하며, 이는 제로 디비전 오류를 잡는 데 매우 도움이됩니다.

IS_FINITE 기능은 무엇입니까?

is_finite ()는 숫자 값이 유한 값인지 여부를 감지하는 PHP의 함수입니다. 인수가 유한 번호 (무한대 나 수상자가 아님) 인 경우 true를 반환하십시오. 그렇지 않으면 False를 반환하십시오.

 <?php
var_dump(is_finite(10));    // bool(true)
var_dump(is_finite(INF));   // bool(false)
var_dump(is_finite(NAN));   // bool(false)
?>

IS_FINITE를 사용하여 제거 오류를 피하는 아이디어

분할 작업을 수행 할 때는 먼저 분모가 0인지 아닌지 여부를 결정할 수 있습니다. 유한 번호가 아닌 경우 분할을 피하거나 기본값 또는 오류 프롬프트를 제공하십시오.

샘플 코드

 <?php
function safe_divide($numerator, $denominator) {
    // 분모가 제로가 아닌 유한한지 여부를 결정하십시오
    if (is_finite($denominator) && $denominator != 0) {
        return $numerator / $denominator;
    } else {
        return "실수:분모는 0 또는 유효하지 않을 수 없습니다";
    }
}

// 시험
echo safe_divide(10, 2);   // 산출 5
echo safe_divide(10, 0);   // 산출 실수:분모는 0 또는 유효하지 않을 수 없습니다
echo safe_divide(10, INF); // 산출 실수:분모는 0 또는 유효하지 않을 수 없습니다
?>

이 예에서 IS_FINITE ()는 분모가 유한 번호인지 여부를 결정하고 $ denominator! = 0 조건으로 제로 디징 오류를 효과적으로 피할 수 있습니다.

송전 제로 오류를 피하는 다른 일반적인 방법

  1. 0인지 직접 결정하십시오

 if ($denominator == 0) {
    // 处理실수
} else {
    $result = $numerator / $denominator;
}
  1. Ternary Operator를 사용하여 기본값을 할당하십시오

 $result = ($denominator == 0) ? 0 : $numerator / $denominator;
  1. 예외 처리를 활용합니다

PHP 7 이상의 경우 Zero Dividing을 잡음으로써 DivisionByzeroRror 예외를 처리 할 수 ​​있습니다.

 try {
    $result = $numerator / $denominator;
} catch (DivisionByZeroError $e) {
    echo "除零실수:" . $e->getMessage();
}
  1. IS_FINITE 기능과 결합합니다

위에서 볼 수 있듯이 IS_FINITE () 와 결합하면 분모가 무한대 또는 NAN 인 경우를 피하기 위해 제수의 유효성을 감지 할 수 있습니다.

요약

IS_FINITE () 함수는 PHP에서 숫자 값의 유효성을 판단하는 좋은 도구입니다. 생생한 판단과 결합하여 개발자는 프로그램 충돌을 일으키는 제로 디코딩 오류를 피하기 위해보다 강력한 코드를 작성하는 데 도움이 될 수 있습니다. 또한 조건부 판단 및 예외 처리의 합리적인 사용도 일반적이며 효과적인 방법입니다. 실제 요구에 따라 올바른 오류 보호 방법을 선택하면 코드의 보안 및 안정성이 향상 될 수 있습니다.