2017-10-29 1 views
0

in_array(0, array("pop"))은 1을 반환합니까?왜 in_array (0, *)는 항상 1을 반환합니까

docs을 참조하십시오. 0은 배열의 값이 아니므로 0 또는 FALSE를 반환해야합니다.

+2

엄격한 세번째 파라미터는 그와 in_array() 함수는도에서 바늘의 종류를 확인한다 TRUE로 설정되면 커다란 건초 더미. - http://php.net/en/in_array – splash58

+1

설명서에 이미 문자열이 있습니다. 'strict가 설정되어 있지 않으면 느슨한 비교를 사용하여 바늘을 찾기 위해 건초 더미를 검색합니다.'당신은 __loose comparison__을 알고 있습니다. 그렇지 않습니까? –

+0

그것은 버그가 아니라 기능입니다. 내 생각 엔'(int) 'pop'= 0' – ArtisticPhoenix

답변

1

in_array($needle, $haystack, $strict = FALSE)느슨한 비교을 사용하여 바늘을위한 건초 더미를 찾아 엄격히 설정하지 않는 한. 세 번째 "엄격한"인수를 제공하지 않으면 php의 느슨한 comparsion 규칙에 따라 값이 비교됩니다. http://php.net/manual/en/types.comparisons.php으로 이동하십시오. 이 느슨한 비교 동작이 문서화되어 있음을 알 수 있습니다.

0 == "pop"

는 TRUE

0 === "pop"가 복귀 엄격한 비교 한 복귀 느슨한 비교이다 FALSE

+0

downvote에 대한 설명을하시기 바랍니다. – Robert

관련 문제