
DOMXPath::evaluate() 함수는 XPath 표현식을 평가하여 결과를 반환합니다. 하지만, evaluate() 함수를 사용하여 검색한 데이터가 없을 때 에러가 발생하는 이유는 다음과 같습니다.
- evaluate() 함수는 XPath 표현식의 결과가 없을 때 NULL을 반환하지 않습니다. 대신, evaluate() 함수는 NULL이 아닌 FALSE를 반환합니다.
- evaluate() 함수는 FALSE를 반환할 때, PHP의 기본 설정에 따라 NOTICE 또는 WARNING이 발생할 수 있습니다.
이러한 문제를 해결하기 위한 방법은 다음과 같습니다.
- evaluate() 함수의 결과를 NULL로 비교하여, 결과가 없을 때 NULL을 반환하도록 수정할 수 있습니다.
- PHP의 기본 설정을 변경하여, NOTICE 또는 WARNING이 발생하지 않도록 할 수 있습니다.
- evaluate() 함수를 사용하는 부분을 try-catch 블록으로 감싸서, 예외를 처리할 수 있습니다.
예를 들어, evaluate() 함수의 결과를 NULL로 비교하여, 결과가 없을 때 NULL을 반환하도록 수정한 코드는 다음과 같습니다.
#hostingforum.kr
php
$result = $xpath->evaluate($xpathExpression);
if ($result === NULL) {
// 결과가 없을 때의 처리 로직
} else {
// 결과가 있을 때의 처리 로직
}
또한, PHP의 기본 설정을 변경하여, NOTICE 또는 WARNING이 발생하지 않도록 할 수 있습니다. PHP.ini 파일을 수정하여, error_reporting을 0으로 설정할 수 있습니다.
#hostingforum.kr
php
error_reporting = 0
또한, evaluate() 함수를 사용하는 부분을 try-catch 블록으로 감싸서, 예외를 처리할 수 있습니다.
#hostingforum.kr
php
try {
$result = $xpath->evaluate($xpathExpression);
// 결과가 있을 때의 처리 로직
} catch (Exception $e) {
// 예외가 발생했을 때의 처리 로직
}
이러한 방법을 사용하여, evaluate() 함수를 사용하여 검색한 데이터가 없을 때의 문제를 해결할 수 있습니다.
2025-06-22 18:51