PHP에서 stripos 함수는 다른 문자열에서 문자열의 위치를 찾는 데 사용됩니다 (Case Insensentitive). 이 함수는 발견 된 위치 색인을 반환하거나 찾을 수없는 경우 거짓을 반환합니다. 그러나 Scripos 함수가 0을 반환하면 많은 개발자가 PHP에서 숫자 0 과 부울 값이 동일하기 때문에 잘못 이라고 잘못 생각합니다. 그렇다면 stripos 함수가 0 False를 반환합니까? 왜 잘못 판단이 있습니까? 이 반환 값을 어떻게 올바르게 이해해야합니까? 다음으로, 우리는이 질문들을 하나씩 대답합니다.
Stripos 의 기능 프로토 타입은 다음과 같습니다.
stripos(string $haystack, string $needle, int $offset = 0): int|false
$ haystack : 검색 할 문자열.
$ 바늘 : 찾을 끈.
$ 오프셋 :이 위치에서 검색을 시작하십시오 (선택 사항).
이 기능의 기능은 $ beless가 $ haystack (0부터 시작)에 처음 나타나는 위치를 반환하는 것입니다. 문자열을 찾을 수 없으면 False가 반환됩니다.
$haystack = "Hello World";
$needle = "world";
$position = stripos($haystack, $needle);
echo $position;
출력은 다음과 같습니다.
6
"세계" (케이스 insensitive)가 나타나는 첫 번째 위치 인 "Hello World" 문자열에서 인덱스 위치 6이기 때문입니다.
많은 개발자들이 Stripos 함수의 반환 값을 판단 할 때 False 와 직접 비교할 수 있습니다. 다음 코드가 있다고 가정합니다.
$haystack = "test string";
$needle = "test";
if (stripos($haystack, $needle) === false) {
echo "찾을 수 없습니다";
} else {
echo "설립하다";
}
이 경우 Stripos는 "테스트 문자열" 에서 " 테스트" 가 0 에서 나타나기 때문에 0을 반환합니다. 따라서 일치하는 문자열을 찾았음에도 불구하고 PHP에서 0이 False로 간주되기 때문에 프로그램은 여전히 "찾을 수 없음"을 출력합니다.
Stripos 의 반환 값을 올바르게 판단하려면 False 와 직접 비교를 피해야합니다. 올바른 접근법은 엄격한 비교 연산자 ===를 사용하여 False가 반환되는지 여부를 결정하고 0이 유효한 일치 위치라고 생각하는 것입니다. 수정 된 코드 예는 다음과 같습니다.
$haystack = "test string";
$needle = "test";
$position = stripos($haystack, $needle);
if ($position === false) {
echo "찾을 수 없습니다";
} else {
echo "설립하다,위치는입니다:".$position;
}
이 경우 프로그램이 올바르게 출력됩니다.
설립하다,위치는입니다:0
이런 식으로, 엄격한 비교 연산자 === 를 통해, 우리는 false (발견 없음)와 0 (일치하는 위치가 0임을 나타냄)을 구별 할 수 있습니다.
stripos 의 반환 값을 판단 할 때는 다음 사항에주의를 기울여야합니다.
사용하지 마십시오 == 비교 : php, 0 과 false 에서는 동일하기 때문에 ==를 사용하면 잘못된 판단이 발생합니다.
Strict Comparison === : False (찾을 수 없음)와 0 (문자열이 처음에 일치 함을 나타냄)을 구별 할 수 있습니다.
또한, 합리적인 기본값을 설정하거나 실제 개발에서 Stripos 가 반환 한 값에 대한 오류 처리를 수행하여 프로그램의 견고성을 보장하는 것이 좋습니다. 예를 들어:
$position = stripos($haystack, $needle);
if ($position === false) {
// 근거없는 상황을 처리하십시오
} else {
// 발견 된 상황을 처리하십시오
}
PHP에서 stripos 함수가 0을 반환 할 때, 일치하는 문자열을 찾을 수 없다는 것을 의미하는 것이 아니라 일치하는 문자열이 위치 0 에서 시작된다는 것을 의미합니다. 0이 잘못된 것으로 잘못 고려하지 않으려면 엄격한 비교 연산자 ===를 사용하여 반환 값이 False 인지 확인하여 프로그램의 판단 논리가 올바른지 확인해야합니다.
Stripos 의 반환 값을 이해하고 적절한 비교 방법을 취함으로써 판단 오류를 효과적으로 피하고보다 강력한 PHP 코드를 작성할 수 있습니다.