preg_last_error 함수
preg_last_error 함수는 정규식 관련 함수 작업 중 발생한 마지막 오류의 코드를 반환합니다.
preg_match나 preg_replace와 같은 함수가 false를 반환할 때 정규식을 디버깅하는 데 유용합니다.
함수는 매개변수를 받지 않습니다.
함수는 정수형 오류 코드를 반환합니다. 편의를 위해 오류 코드를 특수 상수와 비교할 수 있습니다 (아래 표 참조).
구문
preg_last_error(): int;
오류 상수 표
| 상수 | 값 | 설명 |
|---|---|---|
PREG_NO_ERROR |
0 | 오류가 발생하지 않음 |
PREG_INTERNAL_ERROR |
1 | PCRE 내부 오류 |
PREG_BACKTRACK_LIMIT_ERROR |
2 | 백트랙 제한 초과 (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | 재귀 제한 초과 |
PREG_BAD_UTF8_ERROR |
4 | 잘못된 UTF-8 데이터 |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | 오프셋이 올바른 UTF-8 코드의 시작 부분과 일치하지 않음 |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT 컴파일러 스택 제한 초과 |
예시
잘못된 정규식 이후 오류 확인:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
코드 실행 결과:
4
예시
PCRE 오류 상수와 함께 사용하기:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
코드 실행 결과:
'Backtrack limit was exhausted'
함께 보기
-
함수
preg_match,
정규식 검색을 수행하는 함수 -
함수
preg_replace,
정규식 치환을 수행하는 함수 -
함수
preg_quote,
정규식의 특수 문자를 이스케이프하는 함수