현재 위치: > 최신 기사 목록> PHP에서 Assert 기능의 기본 사용법은 무엇입니까? Assert 기능의 기능 및 사용 시나리오에 대한 자세한 소개

PHP에서 Assert 기능의 기본 사용법은 무엇입니까? Assert 기능의 기능 및 사용 시나리오에 대한 자세한 소개

gitbox 2025-06-09

Assert () 는 PHP에서 매우 독특하고 유용한 기능으로 주로 디버깅 및 코드 확인에 사용됩니다. 그것의 목적은 주장을하는 것이며, 표현의 결과가 거짓 인 경우 오류 또는 경고가 발생됩니다. 일반적으로 개발의 프로그램 가정이 사실인지 여부를 감지하고 코드가 작동 중에 예상되는 동작을 충족하는지 확인하는 데 사용됩니다.

1. assert () 함수의 기본 사용

php에서 assert () 함수는 주어진 표현식이 인지 확인하는 데 사용됩니다. 어설 션이 실패하면 일반적으로 코드를 디버깅하는 데 사용되는 경고 (또는 오류)가 발생합니다.

문법:

 assert(mixed $assertion): bool;
  • $ Assertion : 또는 거짓을 반환하는 표현.

  • 반환 값 : Assert가 true 인 경우 assert ()는 true를 반환합니다. 그렇지 않으면 거짓 .

예:

 <?php
$x = 10;
assert($x > 5);  // 이 주장은 유지됩니다,경고가 발생하지 않았습니다
assert($x < 5);  // 주장이 실패했습니다,경고를 유발합니다
?>

이 예에서 Assert ($ x> 5)는 성공적으로 통과하고 ($ x <5) 경고를 유발합니다.

2. assert ()의 구성

assert () 함수의 동작은 PHP 구성 파일 php.ini 에서 설정하여 변경할 수 있습니다. 예를 들어, 사용자 정의 핸들러를 설정하거나 어설 션을 활성화 또는 비활성화 할 수 있습니다. 일반적인 구성 옵션은 다음과 같습니다.

Zend.assertions

이 옵션은 어설 션을 활성화 또는 비활성화하는 데 사용됩니다. 이를 1 로 설정함으로써 어설 션이 활성화되고 0 으로 설정되면 어설 션을 비활성화합니다.

 zend.assertions = 1   // 주장을 활성화합니다

assert.exception

assert () 가 활성화되고 어설 션이 버리지 않으면. 1 으로 설정하면 어설 션 실패는 AssertionError 예외를 던집니다.

 assert.exception = 1   // 어설 션이 실패하면 예외를 던지십시오

3. Assert ()의 일반적인 응용 시나리오

3.1 디버깅 및 개발

주장은 종종 개발 중에 코드의 가정을 확인하기 위해 사용됩니다. 그들은 개발자가 프로그램이 실행될 때까지 기다리지 않고 잠재적 인 문제를 조기에 발견하도록 도울 수 있습니다. 예를 들어, 함수의 입력 매개 변수가 예상대로 확인하십시오.

 function divide($a, $b) {
    assert($b != 0, '제수는 0이 될 수 없습니다');
    return $a / $b;
}

이 예에서 Assert ()는 $ b 가 0인지 확인하고 그렇다면 어설 션이 실패하고 오류가 발생합니다.

단위 테스트의 경우 3.2

단위 테스트에서 Assert ()를 사용하여 함수 또는 방법의 동작이 예상대로 확인할 수 있습니다. 예를 들어, 함수는 항상 양수 값을 반환해야합니다.

 function getPositiveNumber($num) {
    assert($num > 0, '반환 값은 양수 여야합니다');
    return $num;
}

3.3 성능 최적화

Assert ()는 성능을 최적화하는 데 사용될 수도 있습니다. 특정 조건에서 작업이 중복되는 경우 불필요한 계산 또는 처리를 피하기 위해 이러한 조건이 주장에 의해 충족되는지 확인할 수 있습니다.

4. 주장이 실패 할 때의 행동

어설 션이 실패하면 PHP는 구성에 따라 다르게 행동합니다. 기본적으로 실패한 어설 션은 다음 형식과 유사한 경고 메시지를 트리거합니다.

 Warning: assert(): Assertion failed in /path/to/file.php on line X

assert.exception이 1 으로 설정되면 AssertionError 예외가 발생하고 개발자는 예외 처리에서이를 잡을 수 있습니다.

 try {
    assert($x > 5);  // 주장이 실패했습니다会抛出异常
} catch (AssertionError $e) {
    echo '주장이 실패했습니다: ' . $e->getMessage();
}

5. 사용자 정의 오류 처리와 결합

또한 PHP를 통해 Assert () 의 오류 처리 메커니즘을 통해 어설 션이 실패 할 때 행동을보다 세분화 할 수 있습니다. assert_callback을 통해 콜백 함수를 설정하고 어설 션이 실패 할 때 호출 할 수 있습니다.

 assert_options(ASSERT_CALLBACK, function ($file, $line, $code) {
    echo "주장이 실패했습니다:문서 $file,1. $line 좋아요,암호 $code";
});

이렇게하면 Assert () 의 출력 메소드가 실패하면 개발자가 문제를 더 잘 찾을 수 있도록 도와줍니다.

6. 생산 환경에서의 주장을 비활성화합니다

생산 환경에서는 일반적으로 성능에 영향을 줄 수 있으므로 어설 션을 켜는 것이 권장되지 않습니다. 프로덕션 환경에서는 php.ini 구성 파일을 수정하여 어설 션을 비활성화 할 수 있습니다.

 zend.assertions = -1  // 어설 션을 비활성화합니다

이런 식으로 Assert ()는 프로그램 실행에 아무런 영향을 미치지 않으며 성능 손실을 피합니다.

7. 주목할만한 것들

  • 주장은 개발 시간 도구 일 뿐이며 생산 환경에서 비활성화되어야합니다.

  • 어설 션 자체는 프로그램의 논리에 영향을 미치지 않으며 디버깅 중에 검증 도구로만 사용됩니다.

  • 어설 션이 실패하면 오류 메시지의 세부 정도는 구성에 따라 다를 수 있습니다.

요약

Assert () 함수는 PHP에서 매우 유용한 디버깅 도구로 개발자가 개발 중에 기대치를 충족시키지 못하는 잠재적 오류 또는 행동을 포착 할 수 있도록 도와줍니다. Assert ()는 합리적인 구성 및 사용을 통해 코드의 신뢰성을 향상시킬뿐만 아니라 개발 프로세스 중에 오류 위치를 최적화 할 수 있습니다. 그러나 프로그램 성능에 영향을 미치지 않도록 생산 환경에서 어설 션을 비활성화해야한다는 점에 유의해야합니다.