gettype()
함수의 정의와 사용법
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()
함수의 형식은 다음과 같습니다.
구문
gettype(mixed $value): string
매개변수
$value |
데이터 타입을 확인할 변수 |
---|
$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 버전
PHP 4+
변경 사항
PHP 7.2.0 버전 이후에는 PHP에서 'unknown type'
값은 더 이상 존재하지 않습니다.
참고문헌
같이 보기
- 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() 함수 - 문자열이 모두 숫자인지 확인