현재 위치: > 최신 기사 목록> Stripos가 0 거짓을 반환합니까? 왜 잘못 판단이 있습니까?

Stripos가 0 거짓을 반환합니까? 왜 잘못 판단이 있습니까?

M66 2025-05-13

PHP에서 stripos 함수는 다른 문자열에서 문자열의 위치를 ​​찾는 데 사용됩니다 (Case Insensentitive). 이 함수는 발견 된 위치 색인을 반환하거나 찾을 수없는 경우 거짓을 반환합니다. 그러나 Scripos 함수가 0을 반환하면 많은 개발자가 PHP에서 숫자 0부울 값이 동일하기 때문에 잘못 이라고 잘못 생각합니다. 그렇다면 stripos 함수가 0 False를 반환합니까? 왜 잘못 판단이 있습니까? 이 반환 값을 어떻게 올바르게 이해해야합니까? 다음으로, 우리는이 질문들을 하나씩 대답합니다.

1. stripos 기능의 기본 사용

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이기 때문입니다.

2. 반환 할 때 Stripos가 왜 오해를 유발합니까 ?

많은 개발자들이 Stripos 함수의 반환 값을 판단 할 때 False 와 직접 비교할 수 있습니다. 다음 코드가 있다고 가정합니다.

 $haystack = "test string";
$needle = "test";

if (stripos($haystack, $needle) === false) {
    echo "찾을 수 없습니다";
} else {
    echo "설립하다";
}

이 경우 Stripos는 "테스트 문자열" 에서 " 테스트"0 에서 나타나기 때문에 0을 반환합니다. 따라서 일치하는 문자열을 찾았음에도 불구하고 PHP에서 0이 False로 간주되기 때문에 프로그램은 여전히 ​​"찾을 수 없음"을 출력합니다.

3. Stripos 의 반환 가치를 올바르게 판단하는 방법은 무엇입니까?

Stripos 의 반환 값을 올바르게 판단하려면 False 와 직접 비교를 피해야합니다. 올바른 접근법은 엄격한 비교 연산자 ===를 사용하여 False가 반환되는지 여부를 결정하고 0이 유효한 일치 위치라고 생각하는 것입니다. 수정 된 코드 예는 다음과 같습니다.

 $haystack = "test string";
$needle = "test";

$position = stripos($haystack, $needle);

if ($position === false) {
    echo "찾을 수 없습니다";
} else {
    echo "설립하다,위치는입니다:".$position;
}

이 경우 프로그램이 올바르게 출력됩니다.

 설립하다,위치는입니다:0

이런 식으로, 엄격한 비교 연산자 === 를 통해, 우리는 false (발견 없음)와 0 (일치하는 위치가 0임을 나타냄)을 구별 할 수 있습니다.

4. 판단에 실수를 피하는 방법은 무엇입니까?

stripos 의 반환 값을 판단 할 때는 다음 사항에주의를 기울여야합니다.

  • 사용하지 마십시오 == 비교 : php, 0false 에서는 동일하기 때문에 ==를 사용하면 잘못된 판단이 발생합니다.

  • Strict Comparison === : False (찾을 수 없음)와 0 (문자열이 처음에 일치 함을 나타냄)을 구별 할 수 있습니다.

또한, 합리적인 기본값을 설정하거나 실제 개발에서 Stripos 가 반환 한 값에 대한 오류 처리를 수행하여 프로그램의 견고성을 보장하는 것이 좋습니다. 예를 들어:

 $position = stripos($haystack, $needle);

if ($position === false) {
    // 근거없는 상황을 처리하십시오
} else {
    // 발견 된 상황을 처리하십시오
}

5. 요약

PHP에서 stripos 함수가 0을 반환 할 때, 일치하는 문자열을 찾을 수 없다는 것을 의미하는 것이 아니라 일치하는 문자열이 위치 0 에서 시작된다는 것을 의미합니다. 0이 잘못된 것으로 잘못 고려하지 않으려면 엄격한 비교 연산자 ===를 사용하여 반환 값이 False 인지 확인하여 프로그램의 판단 논리가 올바른지 확인해야합니다.

Stripos 의 반환 값을 이해하고 적절한 비교 방법을 취함으로써 판단 오류를 효과적으로 피하고보다 강력한 PHP 코드를 작성할 수 있습니다.