현재 위치: > 최신 기사 목록> stripos의 반환 값이 False인지 올바르게 결정하는 방법은 무엇입니까?

stripos의 반환 값이 False인지 올바르게 결정하는 방법은 무엇입니까?

M66 2025-05-13

php에서 stripos () 함수는 다른 문자열에서 문자열이 먼저 나타나는 위치를 찾는 데 사용됩니다 (Case Insensitive). 이 기능은 주어진 컨텐츠에 키워드가 있는지 여부를 결정하는 것과 같은 문자열 관련 로직을 처리 할 때 종종 사용됩니다.

그러나 stripos () 의 반환 값 특성으로 인해 많은 개발자는 판단 할 때 특히 0 의 반환 값을 처리하기 위해 걸려 넘어지는 경향이 있습니다. 이 기사는이 문제를 자세히 분석하고 올바른 판단 방법을 제공합니다.

1. stripos () 함수의 기본 사용

 $haystack = "Welcome to m66.net!";
$needle = "welcome";

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

위의 예에서는 대상 문자열의 시작 부분에 "환영"이 나타나기 때문에 stripos ()는 0을 반환합니다 (케이스는 다르지만 stripos ()는 대소 문자에 민감합니다).

2. 일반적인 오해 : 직접 판단하는 경우 사용하십시오

많은 초보자가 다음과 같은 방식으로 쓸 것입니다.

 if (stripos($haystack, $needle)) {
    echo "키워드를 찾았습니다";
} else {
    echo "키워드가 존재하지 않습니다";
}

이 코드의 문제점은 문자열의 시작 부분에 키워드가 나타나면 (위치 위치), 판단0이 false 로 취급되고 다른 지점이 잘못 실행된다는 것입니다 .

3. 올바른 판단 방법 : 모두 거짓 과 동일합니다

 $pos = stripos($haystack, $needle);
if ($pos !== false) {
    echo "키워드를 찾았습니다,위치는입니다:$pos";
} else {
    echo "키워드가 존재하지 않습니다";
}

( ! == false )와 동일한 작문 방법을 사용하면 함수가 0 또는 False를 반환하는지 정확하게 구별하여 논리적 오류를 피할 수 있습니다.

4. 응용 프로그램 시나리오의 예

예를 들어, 사용자가 제출 한 주석에 특정 민감한 단어가 포함되어 있는지 여부를 감지하고 다음을 알리려고합니다.