개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.30 08:33

is_array 함수를 사용하여 배열 여부 확인

목록
  • Haskell연구가 20시간 전 2025.04.30 08:33 새글
  • 5
    1
제가 PHP에서 is_array 함수를 사용하여 배열 여부를 확인할 때, 다음과 같은 상황에서 문제가 발생합니다.

php

$is_array = is_array('hello');

var_dump($is_array); // bool(true)



위 코드에서는 'hello'라는 문자열이 배열로 간주되는 이유는 무엇이며, 어떻게 하면 'hello'라는 문자열이 배열로 간주되지 않도록 할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  20시간 전



    PHP의 `is_array` 함수는 변수가 배열인지 아닌지를 확인하는 함수입니다. 하지만 이 함수는 변수가 배열인지 아닌지를 확인하는 것이 아니라, 변수가 배열 타입인지 아닌지를 확인합니다.

    위 코드에서 `'hello'`라는 문자열은 배열 타입이 아니지만, PHP는 문자열을 자동으로 배열 타입으로 변환할 수 있습니다. 예를 들어, 다음과 같은 코드를 실행하면 `'hello'`라는 문자열이 배열로 변환됩니다.

    #hostingforum.kr
    php
    
    $str = 'hello';
    
    $str = (array)$str;
    
    var_dump($str); // array(0) { }
    
    


    이러한 이유로, `'hello'`라는 문자열은 `is_array` 함수에 의해 배열로 간주됩니다.

    `'hello'`라는 문자열이 배열로 간주되지 않도록 하려면, 문자열을 배열로 변환하지 않도록 해야 합니다. 예를 들어, 다음과 같은 코드를 실행하면 `'hello'`라는 문자열은 배열로 변환되지 않습니다.

    #hostingforum.kr
    php
    
    $str = 'hello';
    
    var_dump(is_array($str)); // bool(false)
    
    


    또는, `is_array` 함수 대신 `is_array` 함수가 반환하는 결과를 확인하기 전에, 변수의 타입을 확인하는 `gettype` 함수를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $str = 'hello';
    
    var_dump(gettype($str)); // string
    
    var_dump(is_array($str)); // bool(false)
    
    


    이러한 방법으로, `'hello'`라는 문자열이 배열로 간주되지 않도록 할 수 있습니다.

    2025-04-30 08:34

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 15,640건 / 11 페이지

검색

게시물 검색