preg_match 반환 2
https://bugs.php.net/bug.php?id=78853
preg_match 일치 모드에서는 1을, 일치하지 않을 때는 0을, 오류가 발생하면 가짜를 반환합니다.
그래서 이런 정규 표현을 해보자.var_dump(preg_match('/^|\d{1,2}$/', "7"));
결실
이거 뭐야?
2 돌려줬어요.
양식이 바뀌었지만 문서가 업데이트되지 않아 낡았다고 생각했다영문판도'1 또는 0 또는 휴가 반환'이라고 잘 적혀 있고 문서도 낡지 않은 것 같다.
PHP7.3부터 있었던 것 같아서 이유를 조금 찾으려고 소스를 보러 갔다
7.3.0
7.2.24
포기했어.
참고로 PHP70에 컴파일 옵션pcre.jit
이 추가되어 정규 표현식 JIT 사용로 변경되었습니다.
이 JIT용 메모리는 의외로 작다. 예를 들어 아래의 정규 표현식pcre.jit
의 상태에 따라 반환값이 변화할 수 있다.var_dump(preg_match('/^(A{1,2}B)+$/',str_repeat('AB',8192)));
pcre.jit=0
면 되돌아오는 값이 1입니다.
그러나 기본pcre.jit=1
일 경우 반환값이 가짜preg_last_error일 경우 JIT용 메모리 부족PREG_JIT_STACKLIMIT_ERROR을 반환한다.
그러나 pcre.jit=0
최초의 정규 표현식에서도 2로 되돌아왔다.
preg_last_error에서도 오류가 발생하지 않았음을 확인하기 때문에pcre.jit
특별한 관계가 없는 것 같습니다.
그럼 이 오류는 며칠 전수정됨.
7.4로 병합로 인해 2019/11/28에 발표될 예정인 PHP7.4.0 정식 버전은 이미 수정되었다고 생각합니다.
그리고 안쪽은 if 하나만 꽂았어요.인데 어떻게 해야 할지 모르겠어요.
Reference
이 문제에 관하여(preg_match 반환 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rana_kualu/items/9af7bc1a7404ba5e7da1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var_dump(preg_match('/^|\d{1,2}$/', "7"));
var_dump(preg_match('/^(A{1,2}B)+$/',str_repeat('AB',8192)));
Reference
이 문제에 관하여(preg_match 반환 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rana_kualu/items/9af7bc1a7404ba5e7da1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)