in_array의 암시적 변환을 사용하는 방법

php中世界最好的语言
풀어 주다: 2023-03-22 08:44:02
원래의
1555명이 탐색했습니다.

이번에는 in_array의 암시적 변환을 사용하는 방법과 in_array의 암시적 변환을 사용할 때 어떤 주의사항이 있는지 알아보겠습니다.

Question

오늘 인터페이스를 작성할 때 많은 수의 기본 정보 매개변수를 전달해야 합니다. 매개변수는 int와 string 두 가지 유형이므로 확인의 편의를 위해 모든 매개변수를 넣을 예정입니다. , in_array(0, $param)을 사용하여 int 매개변수가 0인지 확인한 다음, 문자열 매개변수가 비어 있는지 별도로 확인합니다.

      if(in_array(0, $param) || $param['img'] == '') {
        $this->errorCode = 10030;
        $this->errorMessage = '参数不正确';
        return false; 
      }
로그인 후 복사

단, self 동안 -테스트 결과, 올바른 매개변수가 전달되면 잘못된 매개변수가 반환되는 것으로 나타났습니다. 팁! ! !

이유

이 상황은 정확히 in_array가 문제를 일으키기 때문에 발생합니다. in_array(search,array)는 배열의 각 값을 검색과 비교하는 것과 동일합니다. 내 $param 배열에 int 매개변수도 있습니다. 문자열과 int를 비교하는 것과 동일한 문자열 매개변수. PHP의 암시적 변환 규칙:

Non-number String정수와 비교하면 문자열은 자동으로 int(0)으로 변환됩니다.

다음 예는 명령문:

<?php
  $a = (int)'abc';
  var_dump($a); //int(0)
  $c = array(0,1,2,3);
  if(in_array('abc', $c)) {
    echo 'exist';
  } else {
    echo 'not exist';
  } //exist
로그인 후 복사

Solution

in_array는 search의 데이터가 배열의 값과 동일한 유형인지 확인하기 위해 세 번째 매개변수 true를 추가하여 해당 요소가 배열에 존재할 때만 함수를 사용할 수 있도록 합니다. 데이터 유형이 주어진 값과 동일한 경우에만 True 배열이 반환됩니다.

위에 제시한 비즈니스의 경우 더 엄격하게 int 유형 데이터를 배열에, 문자열을 배열에, 두 개의 데이터를 저장할 수 있습니다. 위의 문제가 발생하지 않도록 데이터 검증을 수행하세요

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어의 다른 관련 기사를 참조하세요. 웹사이트!

추천 도서:

PHP의 재귀 기능을 사용하는 방법

Tmall 및 Taobao 제품의 데이터 크롤링

PHP에서 Laravel 비밀번호 재설정 구현

위 내용은 in_array의 암시적 변환을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!