누군가가 내게 왜 그것이 사실인지 설명 할 수 있습니까?빈 문자열을 찾을 때 in_array 함수가 TRUE를 반환하는 이유는 무엇입니까?
in_array('', array(0,1,2));
누군가가 내게 왜 그것이 사실인지 설명 할 수 있습니까?빈 문자열을 찾을 때 in_array 함수가 TRUE를 반환하는 이유는 무엇입니까?
in_array('', array(0,1,2));
docs에서 상기와 같은 이유로 :
bool in_array (mixed $needle , array $haystack [, bool $strict = FALSE ])
검색 건초 엄격한가 설정되어 있지 않으면 느슨해 비교하여 바늘대.
... 및 '' == 0
은 true입니다. 종류가도 확인할 수 있도록 ...
in_array('', array(0, 1, 2), true); // false
을하고, 문자열 ''
는 숫자에 일치하는 기회가되지 않습니다 당신이 엄격한 비교를 사용하려면, 단지 세 PARAMS와 in_array()
를 호출합니다.
in_array
기본적으로 느슨한 비교를 수행합니다. 따라서 ''
은 0
과 같습니다.
in_array
함수에 대해 세 번째 인수 (부울 값)가 있습니다.이 함수는 STRICT 방식으로 일치가 수행되는지 여부를 나타냅니다.
in_array('', array(0,1,2), TRUE);
이면 결과가 거짓입니다.
뿐만 아니라이 표를 포함하여 documentation
가치를 참조하십시오 http://php.net/manual/en/types.comparisons.php#types.comparisions-loose – haim770