>백엔드 개발 >PHP 튜토리얼 >PHP의 `in_array()` 및 `array_search()` 함수는 부울 값 및 `$strict` 매개변수와 함께 어떻게 작동합니까?

PHP의 `in_array()` 및 `array_search()` 함수는 부울 값 및 `$strict` 매개변수와 함께 어떻게 작동합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-22 18:54:10849검색

How Do PHP's `in_array()` and `array_search()` Functions Behave with Boolean Values and the `$strict` Parameter?

PHP in_array() 및 array_search()의 동작 이해

PHP의 in_array() 및 array_search() 함수는 다음과 같은 경우 예기치 않은 동작을 나타낼 수 있습니다. 부울 값을 포함하는 배열을 처리합니다. 이러한 불일치를 해결하려면 이러한 함수의 고유 기능을 이해하는 것이 중요합니다.

두 함수 모두 선택적 세 번째 매개변수인 $strict가 있으며 기본값은 FALSE입니다. $strict가 FALSE로 설정되면 이러한 함수는 느슨한 비교(==)를 사용하여 값을 평가합니다. 즉, 유형에 관계없이 값이 동일한지 여부만 확인합니다.

예를 들어 제공된 배열에서

$arr = [TRUE, "some string", "something else"];

in_array("test", $arr)를 호출하면 배열에 "test"가 없더라도 TRUE를 반환합니다. 이는 TRUE가 "test"를 포함하여 "비어 있지 않은 모든 문자열"과 대략 동일하기 때문에 발생합니다.

마찬가지로 array_search("test", $arr)는 0을 반환하여 "test"가 다음 위치에 있음을 나타냅니다. 인덱스 0. 이는 기본적으로 TRUE와 "비어 있지 않은 문자열"이 동일한 것으로 간주되기 때문입니다.

정확한 비교를 보장하려면 $strict를 다음으로 설정해야 합니다. TRUE - 함수가 엄격한 비교(===)를 사용하도록 합니다. 엄격한 비교는 변수의 값과 유형을 모두 평가합니다. 따라서 $strict가 TRUE로 설정된 경우:

in_array("test", $arr, true); // Returns false
array_search("test", $arr, true); // Returns -1

결론적으로 in_array() 및 array_search()의 기본 동작은 부울 값을 처리할 때 예상치 못한 결과를 초래할 수 있습니다. $strict 매개변수를 TRUE로 설정하면 엄격한 비교를 적용하여 함수가 정확한 결과를 위해 변수의 값과 유형을 모두 평가하도록 할 수 있습니다.

위 내용은 PHP의 `in_array()` 및 `array_search()` 함수는 부울 값 및 `$strict` 매개변수와 함께 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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