정의 및 사용 방법
- PHP 버전
- 4+
is_int() 함수는
주어진 값이 배열(array) 타입인지 확인합니다.
매개변수로 전달된 값이 배열 타입이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
배열(array) 타입은
배열을 나타내는 데이터 타입입니다.
PHP에서 배열은 인덱스 배열(일반 배열)과 연관 배열 두 가지 타입이 있습니다.
기본 예제
/* 인덱스 배열(Indexed Array) 타입 */
var_dump(is_array(array(1, 2, 3))); // bool(true)
var_dump(is_array([1, 2, 3])); // bool(true)
var_dump(is_array([])); // bool(true)
/* 연관 배열(Associative Array) */
var_dump(is_array(array('name' => 'foo', 'age' => 30))); // bool(true)
var_dump(is_array(['name' => 'foo', 'age' => 30])); // bool(true)
/* 부울(boolean) 및 문자열 */
var_dump(is_array(true)); // bool(false)
var_dump(is_array(false)); // bool(false)
var_dump(is_array('array')); // bool(false)
/* 기타 타입 */
var_dump(is_array(100)); // bool(false)
var_dump(is_array(null)); // bool(false)
/* 타입 캐스팅(Type Casting, 형 변환) */
var_dump(is_array((array) 'foo')); // bool(true)
var_dump(is_array((array) 100)); // bool(true)
참고하세요!
gettype() 함수는 주어진 값의 데이터 타입을 문자열로 반환합니다.
구문
is_array(mixed $value): bool
매개변수
$value |
필수. 배열(array) 타입을 확인할 값입니다. |
|---|
반환 값
매개변수로 전달된 값이 배열 타입이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
주의할 점
is_array() 함수를 사용할 때 주의할 점이 있습니다.
빈 배열도 true를 반환
is_array() 함수는 빈 배열을 포함하여 배열을 가리키는 모든 변수에 대해 true를 반환합니다. 이것은 is_array() 함수가 해당 변수가 배열인지 아닌지를 확인하는 것이기 때문입니다. 즉, 빈 배열 역시 배열임을 인식하고 true를 반환합니다.
$a = array(); // array()를 이용한 빈 배열
$b = []; // []를 이용한 빈 배열 => PHP 5.4+ 도입
var_dump(is_array($a)); // bool(true)
var_dump(is_array($b)); // bool(true)
객체는 배열로 간주하지 않음
객체는 배열과 유사한 방식으로 작동할 수 있지만, 배열과 동일하지 않습니다. 객체는 배열보다 훨씬 더 많은 기능을 제공하며, 배열과는 다른 방식으로 작동하는 여러 가지 특징을 가지고 있습니다. 따라서 is_array() 함수를 사용하여 변수의 타입을 확인할 때, 객체는 항상 false를 반환한다는 점을 기억해야 합니다.
변수의 타입이 객체인지 확인하려면 is_object() 함수를 사용하는 것이 좋습니다.
코드 부연설명
is_object() 함수는 주어진 값이 객체(object) 타입인지 확인하는 함수입니다.
class MyClass {
public $property;
public function __construct($value) {
$this->property = $value;
}
}
$obj = new MyClass('value');
var_dump(is_array($obj)); // bool(false)
활용 예제
is_array() 함수는 다음과 같은 경우에 사용하면 편리하거나 유용합니다.
코드의 안전성을 높이기 위해
코드에서 특정 변수가 배열인지 확인해야 하는 경우 is_array() 함수를 사용하여 안전하게 검사할 수 있습니다. 이렇게 하면 예상치 못한 타입의 변수가 전달될 때 발생할 수 있는 오류를 방지할 수 있습니다.
function my_function($data) {
if (!is_array($data)) {
throw new InvalidArgumentException('인수는 배열이어야 합니다.');
}
// ...
}
위의 코드에서 my_function()은 $data라는 인자를 필요로 합니다. 그러나 만약 함수가 호출될 때 배열이 아닌 다른 타입의 데이터가 전달된다면, 예외를 발생시켜서 함수가 비정상적으로 동작하는 것을 방지할 수 있습니다.
배열 관련 기능을 수행하기 전에
배열 관련 기능을 수행하기 전에 is_array() 함수를 사용하여 변수가 실제로 배열인지 확인하는 것이 좋습니다. 이렇게 하면 오류를 방지하고 코드의 가독성을 높일 수 있습니다.
$data = maybe_get_array();
if (is_array($data)) {
foreach ($data as $item) {
// ...
}
}
코드 부연설명
foreach 반복문은 배열이나 객체를 순회해서 반복으로 처리할 때 사용하는 대표적인 구문입니다.
위의 코드에서 $data 변수가 maybe_get_array() 함수를 통해 반환된 값이라고 가정합니다. 그러나 반환된 값이 배열이 아닐 수도 있습니다. 이 경우에 is_array() 함수를 사용하여 $data가 배열인지 확인할 수 있습니다.
같이 보기
- PHP 배열을 생성(선언)하거나 나타내는 표기법 - array(), [ ]
- PHP var_dump() 함수 – 변수의 타입·길이·값까지 출력
- PHP print_r() 함수 – 변수의 정보을 사람이 읽기 쉽게 출력
- PHP gettype() 함수 - 변수의 데이터 타입 확인
- PHP is_bool() 함수 - 변수의 부울(boolean) 타입 확인
- PHP is_int() 함수 - 변수의 정수(integer) 타입 확인
- PHP is_float() 함수 - 변수의 부동소수점 숫자(float) 타입 확인
- PHP is_numeric() 함수 - 변수의 값이 숫자 또는 숫자 문자열인지 확인
- PHP is_string() 함수 - 변수의 문자열(string) 타입 확인
- PHP is_object() 함수 - 변수의 객체(object) 타입 확인
- PHP is_resource() 함수 - 변수의 리소스(resource) 타입 확인
- PHP is_null() 함수 - 변수의 NULL 타입 확인
- PHP ctype_digit() 함수 - 문자열이 모두 숫자인지 확인