정의 및 사용 방법
- PHP 버전
- 4+
gettype() 함수는
인수로 전달된 값의 데이터 타입을 문자열로 반환합니다.
이 함수를 사용하면 변수의 데이터 타입을 확인하는데 매우 유용합니다.
기본 예제
$number = 10;
$string = 'Hello, world!';
$array = [1, 2, 3];
$object = new stdClass();
echo gettype($number); // 'integer'
echo gettype($string); // 'string'
echo gettype($array); // 'array'
echo gettype($object); // 'object'
settype() 함수는 인수로 전달된 변수를 지정된 데이터 타입으로 설정합니다.
구문
gettype(mixed $value): string
매개변수
$value |
데이터 타입을 확인할 변수나 값 |
|---|
반환 값
변수의 데이터 타입을 문자열로 반환합니다. 반환될 수 있는 데이터 형식의 목록은 다음과 같습니다.
위에 나열되어 있는 것들은 gettype() 함수가 반환할 수 있는 가능한 문자열 값들의 목록입니다. 이 목록을 토대로 변수의 데이터 타입을 확인할 수 있습니다.
'boolean'
'boolean' 데이터 타입은
두 가지 값 중 하나인 true (참) 또는 false (거짓)만을 나타내는 데이터 타입입니다. 주로 조건문과 논리 연산에서 사용됩니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$var1 = true;
$var2 = false;
$type1 = gettype($var1); // $type1에는 'boolean'이 저장됩니다.
$type2 = gettype($var2); // $type2에는 'boolean'이 저장됩니다.
// 주로 조건문과 논리 연산에서 사용됩니다.
if ($var1) {
echo '$var1은 true입니다.';
} else {
echo '$var1은 false입니다.';
}
if ($var2) {
echo '$var2은 true입니다.';
} else {
echo '$var2은 false입니다.';
}
'boolean' 데이터 타입을 체크할 때는 is_bool() 함수를 사용하는 것이 좋습니다.
is_bool() 함수는 'boolean' 데이터 타입에만 적용되므로, gettype() 함수보다 'boolean' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$var1 = true;
$var2 = false;
// is_bool() 함수를 사용하여 변수가 부울인지 확인합니다.
if (is_bool($var1)) {
echo '$var1은 부울(boolean)입니다.';
} else {
echo '$var1은 부울(boolean)이 아닙니다.';
}
if (is_bool($var2)) {
echo '$var2은 부울(boolean)입니다.';
} else {
echo '$var2은 부울(boolean)이 아닙니다.';
}
is_bool() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 부울(boolean)인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'integer'
'integer' 데이터 타입은
정수 데이터를 나타내는 데이터 타입입니다. 이것은 양의 정수, 음의 정수, 또는 0을 포함하는 모든 정수 값을 나타냅니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$num1 = 10;
$num2 = -10;
$num3 = 0;
echo gettype($num1); // 'integer'
echo gettype($num2); // 'integer'
echo gettype($num3); // 'integer'
'integer' 데이터 타입을 체크할 때는 is_int() 함수를 사용하는 것이 좋습니다.
is_int() 함수는 'integer' 데이터 타입에만 적용되므로, gettype() 함수보다 'integer' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$num1 = 10;
$num2 = -10;
$num3 = 0;
echo is_int($num1); // true
echo is_int($num2); // true
echo is_int($num3); // true
is_int() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 정수인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'double'
'double' 데이터 타입은
부동소수점 숫자를 나타내는 데이터 타입입니다. 부동소수점 숫자는 소수점을 가진 숫자로, 정수와 달리 소수 부분을 포함합니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$num1 = 10.5;
$num2 = -10.5;
$num3 = 0.0;
echo gettype($num1); // 'double'
echo gettype($num2); // 'double'
echo gettype($num3); // 'double'
'double' 데이터 타입을 체크할 때는 is_float() 함수를 사용하는 것이 좋습니다.
is_float() 함수는 'double' 데이터 타입에만 적용되므로, gettype() 함수보다 'double' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$num1 = 10.5;
$num2 = -10.5;
$num3 = 0.0;
echo is_float($num1); // true
echo is_float($num2); // true
echo is_float($num3); // true
is_float() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 부동소수점 숫자인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'string'
'string' 데이터 타입은
문자열을 나타내는 데이터 타입입니다. 문자열은 작은따옴표('')나 큰따옴표("")로 둘러싸여 있어야 합니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$str1 = 'Hello, world!';
$str2 = '환영합니다. 반갑습니다!';
$str3 = '';
echo gettype($str1); // 'string'
echo gettype($str2); // 'string'
echo gettype($str3); // 'string'
'string' 데이터 타입을 체크할 때는 is_string() 함수를 사용하는 것이 좋습니다.
is_string() 함수는 'string' 데이터 타입에만 적용되므로, gettype() 함수보다 'string' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$str1 = 'Hello, world!';
$str2 = '환영합니다. 반갑습니다!';
$str3 = '';
echo is_string($str1); // true
echo is_string($str2); // true
echo is_string($str3); // true
is_string() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 문자열인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'array'
'array' 데이터 타입은
배열을 나타내는 데이터 타입입니다. PHP의 배열은 숫자 인덱스 배열(일반 배열)과 연관 배열 두 가지 타입이 있습니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$arr1 = [1, 2, 3];
$arr2 = ['Hello', 'world'];
$arr3 = [];
$arr4 = [
'name' => 'John Doe',
'age' => 30
];
echo gettype($arr1); // 'array'
echo gettype($arr2); // 'array'
echo gettype($arr3); // 'array'
echo gettype($arr4); // 'array'
'array' 데이터 타입을 체크할 때는 is_array() 함수를 사용하는 것이 좋습니다.
is_array() 함수는 'array' 데이터 타입에만 적용되므로, gettype() 함수보다 'array' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$arr1 = [1, 2, 3];
$arr2 = ['Hello', 'world'];
$arr3 = [];
$arr4 = [
'name' => 'John Doe',
'age' => 30
];
echo is_array($arr1); // true
echo is_array($arr2); // true
echo is_array($arr3); // true
echo is_array($arr4); // true
is_array() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 배열인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'object'
'object' 데이터 타입은
객체을 나타내는 데이터 타입입니다. PHP에서 객체는 클래스로부터 생성되며, 클래스는 객체의 속성과 메서드를 정의합니다. 객체는 이러한 클래스의 인스턴스로서 데이터와 동작을 함께 포함하고 있습니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
echo gettype($obj1); // 'object'
echo gettype($obj2); // 'object'
'object' 데이터 타입을 체크할 때는 is_object() 함수를 사용하는 것이 좋습니다.
is_object() 함수는 'object' 데이터 타입에만 적용되므로, gettype() 함수보다 'object' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
echo is_object($obj1); // true
echo is_object($obj2); // true
is_object() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 객체인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'resource'
'resource' 데이터 타입은
외부 리소스와 상호작용할 때 사용되는 데이터 타입입니다. 예를 들어, 파일, 데이터베이스 연결, 이미지, 네트워크 연결 등이 리소스에 해당합니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
// 파일을 엽니다.
$fp = fopen('test.txt', 'w');
echo gettype($fp); // 'resource'
'resource' 데이터 타입을 체크할 때는 is_resource() 함수를 사용하는 것이 좋습니다.
is_resource() 함수는 'resource' 데이터 타입에만 적용되므로, gettype() 함수보다 'resource' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
// 파일을 엽니다.
$fp = fopen('test.txt', 'w');
echo is_resource($fp); // true
is_object() 함수는
변수의 데이터 타입을 검사하고 해당 데이터 타입이 리소스인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
'resource (closed)'
'resource (closed)' 데이터 타입은
외부 리소스와 상호작용하는 동안 사용되었던 리소스가 이제 닫혔음을 나타내는 데이터 타입입니다. 이 데이터 타입은 리소스가 더 이상 활성화되지 않고 사용할 수 없다는 것을 나타냅니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
// 파일을 엽니다.
$fp = fopen('test.txt', 'w');
// 파일 핸들을 닫습니다.
fclose($fp);
echo gettype($fp); // 'resource (closed)'
주의하세요!
'resource (closed)' 데이터 타입을 확인할 때 is_resource() 함수를 사용하지 마세요!
is_resource() 함수는 'resource' 타입의 변수인지를 확인하는 함수이기 때문에, 'resource (closed)' 데이터 타입은 is_resource() 함수로 체크되지 않습니다. false입니다.
// 파일을 엽니다.
$fp = fopen('test.txt', 'w');
// 파일 핸들을 닫습니다.
fclose($fp);
if (gettype($fp) == 'resource (closed)') {
echo "파일 포인터가 닫혔습니다."; // 출력
} else {
echo '파일 포인터가 열려 있습니다.';
}
'resource (closed)' 데이터 타입을 확인하려면 gettype() 함수를 사용하여 변수의 데이터 타입을 확인하는 것이 명확하다고 할 수 있습니다.
'NULL'
'NULL' 데이터 타입은
변수가 정의되지 않거나 변수에 값이 할당되지 않았음을 나타내는 데이터 타입입니다. 변수에 명시적으로 null 값을 할당했을 때에도 'NULL' 데이터 타입을 갖게 됩니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
$a = null;
$b;
echo gettype($a); // 'NULL'
echo gettype($b); // 'NULL'
'NULL' 데이터 타입을 체크할 때는 is_null() 함수를 사용하는 것이 좋습니다.
is_null() 함수는 'NULL' 데이터 타입에만 적용되므로, gettype() 함수보다 'NULL' 데이터 타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
$a = null;
$b;
echo is_null($a); // true
echo is_null($b); // true
is_null() 함수는
주어진 변수가 null인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.
'unknown type'
알아두세요!
PHP 7.2.0 전 버전에서는 gettype() 함수가 닫힌 리소스를 확인할 때 'unknown type'이라는 값을 반환했습니다. 이것은 닫힌 리소스에 대한 정보를 불분명하게 표시하는 문제가 있었습니다. PHP 7.2.0부터는 이러한 문제를 개선하기 위해 gettype() 함수가 닫힌 리소스를 확인할 때 'resource (closed)'라는 값을 반환하도록 변경되었습니다. 이를 통해 개발자들은 리소스 변수가 닫힌 상태임을 더 명확하게 알 수 있게 되었습니다.
PHP 7.2.0 버전부터는 PHP에서 'unknown type' 값이 더 이상 존재하지 않습니다.
같이 보기
- PHP var_dump() 함수 – 변수의 타입·길이·값까지 출력
- PHP print_r() 함수 – 변수의 정보을 사람이 읽기 쉽게 출력
- PHP is_bool() 함수 - 변수의 부울(boolean) 타입 확인
- PHP is_int() 함수 - 변수의 정수(integer) 타입 확인
- PHP is_float() 함수 - 변수의 부동 소수점 숫자(float) 타입 확인
- PHP is_numeric() 함수 - 변수의 값이 숫자 또는 숫자 문자열인지 확인
- PHP is_string() 함수 - 변수의 문자열(string) 타입 확인
- PHP is_array() 함수 - 변수의 배열(array) 타입 확인
- PHP is_object() 함수 - 변수의 객체(object) 타입 확인
- PHP is_resource() 함수 - 변수의 리소스(resource) 타입 확인
- PHP is_null() 함수 - 변수의 NULL 타입 확인
- PHP ctype_digit() 함수 - 문자열이 모두 숫자인지 확인