Assert () 는 PHP에서 매우 독특하고 유용한 기능으로 주로 디버깅 및 코드 확인에 사용됩니다. 그것의 목적은 주장을하는 것이며, 표현의 결과가 거짓 인 경우 오류 또는 경고가 발생됩니다. 일반적으로 개발의 프로그램 가정이 사실인지 여부를 감지하고 코드가 작동 중에 예상되는 동작을 충족하는지 확인하는 데 사용됩니다.
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) 경고를 유발합니다.
assert () 함수의 동작은 PHP 구성 파일 php.ini 에서 설정하여 변경할 수 있습니다. 예를 들어, 사용자 정의 핸들러를 설정하거나 어설 션을 활성화 또는 비활성화 할 수 있습니다. 일반적인 구성 옵션은 다음과 같습니다.
이 옵션은 어설 션을 활성화 또는 비활성화하는 데 사용됩니다. 이를 1 로 설정함으로써 어설 션이 활성화되고 0 으로 설정되면 어설 션을 비활성화합니다.
zend.assertions = 1 // 주장을 활성화합니다
assert () 가 활성화되고 어설 션이 버리지 않으면. 1 으로 설정하면 어설 션 실패는 AssertionError 예외를 던집니다.
assert.exception = 1 // 어설 션이 실패하면 예외를 던지십시오
주장은 종종 개발 중에 코드의 가정을 확인하기 위해 사용됩니다. 그들은 개발자가 프로그램이 실행될 때까지 기다리지 않고 잠재적 인 문제를 조기에 발견하도록 도울 수 있습니다. 예를 들어, 함수의 입력 매개 변수가 예상대로 확인하십시오.
function divide($a, $b) {
assert($b != 0, '제수는 0이 될 수 없습니다');
return $a / $b;
}
이 예에서 Assert ()는 $ b 가 0인지 확인하고 그렇다면 어설 션이 실패하고 오류가 발생합니다.
단위 테스트에서 Assert ()를 사용하여 함수 또는 방법의 동작이 예상대로 확인할 수 있습니다. 예를 들어, 함수는 항상 양수 값을 반환해야합니다.
function getPositiveNumber($num) {
assert($num > 0, '반환 값은 양수 여야합니다');
return $num;
}
Assert ()는 성능을 최적화하는 데 사용될 수도 있습니다. 특정 조건에서 작업이 중복되는 경우 불필요한 계산 또는 처리를 피하기 위해 이러한 조건이 주장에 의해 충족되는지 확인할 수 있습니다.
어설 션이 실패하면 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();
}
또한 PHP를 통해 Assert () 의 오류 처리 메커니즘을 통해 어설 션이 실패 할 때 행동을보다 세분화 할 수 있습니다. assert_callback을 통해 콜백 함수를 설정하고 어설 션이 실패 할 때 호출 할 수 있습니다.
assert_options(ASSERT_CALLBACK, function ($file, $line, $code) {
echo "주장이 실패했습니다:문서 $file,1. $line 좋아요,암호 $code";
});
이렇게하면 Assert () 의 출력 메소드가 실패하면 개발자가 문제를 더 잘 찾을 수 있도록 도와줍니다.
생산 환경에서는 일반적으로 성능에 영향을 줄 수 있으므로 어설 션을 켜는 것이 권장되지 않습니다. 프로덕션 환경에서는 php.ini 구성 파일을 수정하여 어설 션을 비활성화 할 수 있습니다.
zend.assertions = -1 // 어설 션을 비활성화합니다
이런 식으로 Assert ()는 프로그램 실행에 아무런 영향을 미치지 않으며 성능 손실을 피합니다.
주장은 개발 시간 도구 일 뿐이며 생산 환경에서 비활성화되어야합니다.
어설 션 자체는 프로그램의 논리에 영향을 미치지 않으며 디버깅 중에 검증 도구로만 사용됩니다.
어설 션이 실패하면 오류 메시지의 세부 정도는 구성에 따라 다를 수 있습니다.
Assert () 함수는 PHP에서 매우 유용한 디버깅 도구로 개발자가 개발 중에 기대치를 충족시키지 못하는 잠재적 오류 또는 행동을 포착 할 수 있도록 도와줍니다. Assert ()는 합리적인 구성 및 사용을 통해 코드의 신뢰성을 향상시킬뿐만 아니라 개발 프로세스 중에 오류 위치를 최적화 할 수 있습니다. 그러나 프로그램 성능에 영향을 미치지 않도록 생산 환경에서 어설 션을 비활성화해야한다는 점에 유의해야합니다.