>백엔드 개발 >PHP 튜토리얼 >`strpos()`가 0을 반환하는 이유는 무엇이며, 하위 문자열 존재를 확실하게 확인할 수 있는 방법은 무엇입니까?

`strpos()`가 0을 반환하는 이유는 무엇이며, 하위 문자열 존재를 확실하게 확인할 수 있는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-13 06:09:09334검색

Why Does `strpos()` Return 0, and How Can I Reliably Check for Substring Existence?

strpos()의 반환 값 특성 이해

strpos()를 사용하여 주어진 문자열 내에서 하위 문자열을 찾을 때 다음 사항을 고려하는 것이 중요합니다. 반환 값의 의미. 그렇지 않으면 예상치 못한 결과가 발생할 수 있습니다.

문제:

두 하위 문자열의 시작 위치를 식별하고 첫 번째가 두 번째보다 앞에 있는지 확인하려는 시도 , 프로그래머는 예상치 못한 동작을 경험합니다. 코드는 느슨한 동등 비교 연산자(<>)를 사용하여 대상 문자열에 각 하위 문자열이 있는지 확인합니다. strpos()의 반환 값이 false인 경우 하위 문자열을 찾을 수 없음을 의미합니다. 그러나 하위 문자열이 0 위치에서 시작하면 strpos()가 0을 반환하는 것으로 나타나며 이는 false로 잘못 해석됩니다.

해결 방법:

PHP 설명서가 명시적으로 나와 있습니다. strpos()는 부울 FALSE 또는 FALSE로 평가되는 부울이 아닌 값(예: 0)을 반환할 수 있다고 명시합니다. 이러한 혼란을 피하기 위해 PHP에서는 strpos()의 반환 값을 테스트할 때 === 연산자(엄격한 같음)를 사용할 것을 권장합니다.

제공된 예에서 프로그래머는 느슨한 같음 연산자(<>)를 대체해야 합니다. ;) strpos() 검사에서 완전 항등 연산자(!==)를 사용합니다. 이렇게 하면 비교가 예상대로 작동하여 대상 문자열에 하위 문자열이 있는지 여부를 올바르게 식별할 수 있습니다.

위 내용은 `strpos()`가 0을 반환하는 이유는 무엇이며, 하위 문자열 존재를 확실하게 확인할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.