이 글은 PHP에서 in_array 함수의 사용법을 소개합니다. 여기에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
다음 코드가 true 또는 false를 출력할 것이라고 생각하시나요?
1 <?php 2 $data = [6,9]; 3 var_dump(in_array('06',$data));
오늘 코드를 디버깅하던 중 in_array의 잘못된 사용으로 인해 발생하는 버그를 발견했습니다. PHP에서 배열은 매우 강력한 데이터 구조입니다. 공식에서는 많은 배열 작업 함수를 제공합니다. in_array()는 배열에 요소가 포함되어 있는지 확인하는 데 자주 사용됩니다. 그러나 함수를 사용할 때 함수의 세 번째 매개변수를 무시하면 일종의 버그가 발생할 수 있습니다.
공식 함수 정의:
in_array ( 혼합 $needle , array $haystack [, bool $strict = FALSE ] )
: bool
needle
찾을 요소
haystack
검색할 배열
strict
이 매개변수가 true로 설정되면 엄격한 비교 모드를 사용하여 요소를 찾습니다. 즉, 검색할 때 검색할 요소와 배열 요소의 값만 비교하는 것이 아니라, 그 유형도 비교하게 된다. 기본값은 거짓입니다.
세 번째 매개변수를 무시하면 기사 시작 부분에 있는 질문의 출력이 true가 됩니다. 엄격한 비교가 사용되지 않기 때문에 함수는 문자열과 숫자를 처리할 때 비교를 위해 문자열을 정수/부동 소수점 유형으로 변환하려고 시도합니다. 예를 들어 '12ax'는 12로 변환됩니다. 그러면 위의 '06'이 6으로 변환되므로 출력은 true가 됩니다.
근데 처음에는 함수에 3번째 매개변수 설정이 있다는 걸 눈치 채지 못해서 어차피 원하는 결과를 얻을 수 없었어요
위 내용은 PHP에서 in_array 함수 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!