오늘 문득 PHP의 in_array 함수의 사용법이 이상하다는 생각이 들었습니다. 이 사용법을 살펴보겠습니다. 필요한 친구들은 간단히 참고할 수 있습니다.
$a= array(" 1,2,3","4");
if(in_array(1,$a)){
echo "조건이 true입니다." ;
}
이 조건은 내 생각 논리에 따르면 매개변수 1의 값이 "1, 2, 3"이고 합이 다음과 같은 경우에만 true입니다. 4인데 이상한 점은 바로 Battlefield에서 다음과 같은 상황을 테스트한 것입니다.
$a=array("a,2,3"," 4");
if(in_array('a',$a)){
echo "조건이 참이 아닙니다.";
}
첫 번째 테스트 사례에서 매개변수 1을 '1'로 쓰면 조건도 참이 아니라는 결론이 나옵니다. :
PHP에서 첫 번째 매개변수가 Numbers - 따옴표 없는 숫자인 경우 두 번째 배열 매개변수에 숫자로 시작하는 문자열이 포함되어 있으면 첫 번째 매개변수가 숫자의 완전한 요소인지 여부에 관계없이 참 값을 반환합니다. 즉, in_array 함수가 매번 내 생각 논리에 따라 전체 요소와 일치하지 않거나 데이터 유형을 충분히 명확하게 이해하지 못하는 것입니까?
동시에 배열의 첫 번째 요소가 0이면 문제도 발생한다는 것을 발견했습니다. 다음 상황을 참조하세요. 코드는 다음과 같습니다.
$a= 배열(0 ,"m");
if(in_array('mc6',$a))
{
echo "====="; 🎜>
}//오픈 소스 코드 phpfensi.com