현재 위치: > 최신 기사 목록> stripos 검색이 실패하고 거짓을 반환합니다. 우아하게 처리하는 방법?

stripos 검색이 실패하고 거짓을 반환합니다. 우아하게 처리하는 방법?

M66 2025-05-13

PHP에서 stripos ()는 다른 문자열에서 문자열의 첫 번째 발생을 무감각하게 찾는 매우 일반적인 기능입니다. 찾은 경우, stripos ()는 대상 문자열에서 일치하는 문자열의 시작 위치를 나타내는 정수를 반환합니다. 찾을 수없는 경우 거짓이 반환됩니다.

여기에 문제가 있습니다 : 반품은 " 0 또는 false "이므로 조건부 판단에서 오류를 쉽게 만들 수 있습니다.

일반적인 함정을 주겠습니다.

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

$ 니들이 $ haystack (위치 0)의 시작 부분에 있으면 stripos ()는 0을 반환하고 (0)이 거짓으로 취급되어 "찾을 수 없음"출력, 논리 오류가 발생합니다!

판단하는 올바른 방법

stripos ()가 거짓을 반환하는 상황을 우아하게 처리하려면 단순한 부울 판단보다는 그것이 거짓 인지를 명확하게 결정해야합니다.

 $pos = stripos($haystack, $needle);
if ($pos !== false) {
    echo "설립하다,위치에서:$pos";
} else {
    echo "찾을 수 없습니다!";
}

합동 비교 기호 ! == 를 사용하면 0false를 정확하게 구별 할 수 있습니다.

추가 패키지 : 가제트 기능을 작성하십시오

코드를 더 명확하고 재사용 할 수 있도록 헬퍼 기능을 캡슐화 할 수 있습니다.

 function containsIgnoreCase($haystack, $needle) {
    return stripos($haystack, $needle) !== false;
}

// 사용의 예
if (containsIgnoreCase("https://m66.net/news", "NEWS")) {
    echo "키워드 포함!";
} else {
    echo "不키워드 포함!";
}

이런 식으로 코드를 작성하는 것은 읽기 쉽고 반복적 인 논리를 줄여 프로젝트에서 광범위한 사용에 매우 적합합니다.

실제 응용 프로그램 : 사용자의 액세스 소스에 특정 키워드가 포함되어 있는지 확인

사용자 액세스가 URL에 UTM_Source가 포함되어 있는지 확인해야한다고 가정합니다.