PHP gettype() 과 is_*()

Lunar Dev·2024년 7월 8일

PHP

목록 보기
5/7

gettype()

gettype() 함수는 변수의 데이터 타입을 문자열로 반환한다

gettype(mixed $value): string
$value : 데이터 타입을 확인할 변수

반환 값은 변수의 데이터 타입을 문자열로 반환한다 목록은 다음과 같다

데이터 타입
boolean
integer
double
string
array
object
resource
resource (closed)
NULL
unknown type

체크하고자 하는 type이 있을 경우 gettype() 보다는 is_*() 함수를 사용하자


is_null()

is_null() 함수는 주어진 값이 NULL 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 NULL 타입이면 true 를 반환하고, 아닐경우 false를 반환한다

💡 NULL 타입은 변수가 정의되지 않거나 변수에 값이 할당되지 않았음을 나타내는 데이터 타입이다
또한, 변수에 명시적으로 null 값을 할당했을 때에도 NULL 타입을 갖게 된다
NULL 타입의 값은 하나뿐이며 대소문자를 구분하지 않는 상수 null 이다

is_null(mixed $value): bool
$value : 필수 NULL 타입을 확인할 값
빈 문자열은 ('')은 문자열 타입으로 간주되고, 빈 배열은 배열 타입으로 간주되지만 둘 다 null값이 아니다
이에 주의하여 빈 문자열과 빈 배열은 null 값을 구분하여 처리해야한다


is_resource()

is_resource() 함수는 주어진 값이 리소스(resource) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 리소스 타입이면 true를 반환하고, 아닐경우 false를 반환한다

💡 리소스(resource) 타입은 외부 리소스와 상호작용할 때 사용되는 데이터 타입이다
예를 들어, 파일, 데이터베이스 연결, 이미지, 네트워크 연결 등이 리소스에 해당한다

is_resource(mixed $value): bool
$value : 필수 리소스(resource) 타입을 확인할 값

is_resource() 함수는 닫힌 리소스 변수의 경우 false 를 반환한다

닫힌 리소스(closed resource) 란?
외부 리소스와 상호작용하는 동안 사용되었던 리소스가 이제 닫혔음을 나타낸다
닫힌 리소스는 더 이상 활성화되지 않고 사용할 수 없다는 것을 의미한다

닫힌 리소스를 확인하기 위해서는 gettype() 함수를 사용하자
닫힌 리소스인 경우 resource (closed) 라는 문자열을 반환한다


is_object()

is_object() 함수는 주어진 값이 객체(object) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 객체 타입이면 true를 반환하고, 아닐경우 false를 반환한다

💡 객체(object) 타입은 객체을 나타내는 데이터 타입이다
PHP에서 객체는 클래스로부터 생성되며, 클래스는 객체의 속성과 메서드를 정의한다
객체는 이러한 클래스의 인스턴스로서 데이터와 동작을 함께 포함하고 있다

is_object(mixed $value): bool
$value : 필수 객체(object) 타입를 확인할 값

is_object() 함수는 빈 객체을 포함하여 객체을 가리키는 모든 변수에 대해 true를 반환한다
이것은 is_object() 함수가 해당 변수가 객체인지 아닌지를 확인하는 것이기 때문이다
즉, 빈 객체 역시 객체임을 인식하고 true 를 반환한다


is_numeric()

is_numeric() 함수는 주어진 값이 숫자 또는 숫자 문자열인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 숫자이거나 숫자 문자열이면
true를 반환하고, 아닐경우 false를 반환한다

💡 PHP 8.0.0 버전 이전에는 숫자 뒤에 공백이 있는 숫자 형식의 문자열은
is_numeric() 함수에 의해 숫자로 인식되지 않았다
예를 들어 '35 '는 공백 문자가 포함되어 있어 false 를 반환했다.
PHP 8.0.0 버전부터는 true 를 반환하도록 변경되었다

is_numeric(mixed $value): bool
$value : 필수 숫자 또는 숫자 문자열인지 확인할 값

+ 또는 - 부호가 포함된 문자열은 is_numeric() 함수에 의해 숫자로 인식된다
예를 들어, '+123' 또는 '-456' 은 숫자로 인식된다

문자열이 모두 숫자인지 확인하려면 ctype_digit() 함수를 사용하자

💡 is_numeric() 함수보다 더 정확하게 숫자를 확인하려면
is_int() 또는 is_float() 함수를 사용하는 것이 좋다
그리고, ctype_digit() 함수는 문자열이 숫자로만 구성되어 있는지 확인하는데 사용할 수 있다


is_float()

is_float() 함수는 주어진 값이 부동 소수점 숫자(float) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 부동 소수점 숫자 타입이면
true를 반환하고, 아닐경우 false를 반환한다

💡 부동 소수점 숫자(float) 타입은 부동 소수점 숫자를 나타내는 데이터 타입이다
소수점을 가진 숫자로, 정수와 달리 소수 부분을 포함한다

is_float(mixed $value): bool
$value : 필수 부동 소수점 숫자(float) 타입를 확인할 값

  • 문자열 '10.5' 처럼 부동 소수점 숫자를 나타내는 문자열은 false를 반환한다
  • 나눗셈 연산자( / ) 사용 시 자동 형변환
$float_1 = 10 / 3;
$float_2 = 10 / 2;

is_float($float_1)); // true
is_float($float_2)); // false

gettype($float_2); // integer
  • PHP에서 부동 소수점 숫자의 산출 연산 결과는 부동 소수점 타입(float)로 처리된다
$result = 0.5 + 0.5;
is_float($result); // true

is_int()

`is_int() 함수는 주어진 값이 정수(integer) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 정수 타입이면 true를 반환하고, 아닐경우 false를 반환한다

💡 정수(integer) 타입은 정수 데이터를 나타내는 데이터 타입이다
이것은 양의 정수, 음의 정수, 또는 0을 포함하는 모든 정수 값을 나타낸다

is_int(mixed $value): bool
$value : 필수 정수(integer) 타입를 확인할 값

  • 문자열 '1' 처럼 숫자를 나타내는 문자열은 false 를 반환한다
  • 10.5 처럼 부동 소수점 숫자(float, 소수점을 가진 숫자)는 false 를 반환한다

is_bool()

is_bool() 함수는 주어진 값이 부울(boolean) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 부울 타입이면 true를 반환하고, 아닐경우 false를 반환한다

💡 부울(boolean) 타입은
두 가지 값 중 하나인 true (참) 또는 false (거짓)만을 나타내는 데이터 타입이다
주로 조건문과 논리 연산에서 사용된다

is_bool(mixed $value): bool
$value : 필수 부울(boolean) 타입를 확인할 값

  • is_bool() 함수는 변수의 값을 boolean으로 변환하여 true 또는 false인지 확인하는 것이 아니라
    변수의 타입이 bool 인지만을 확인한다

is_string()

is_string() 함수는 주어진 값이 문자열(string) 타입인지 확인하는 함수이다
이 함수는 매개변수로 전달된 값이 문자열 타입이면 true를 반환하고, 아닐경우 false를 반환한다

💡 문자열(string) 타입은 문자열을 나타내는 데이터 타입이다
문자열은 작은따옴표( '' )나 큰따옴표( "" )로 둘러싸여 있어야 한다

is_string(mixed $value): bool
$value : 필수 문자열(string) 타입를 확인할 값

profile
저장소

0개의 댓글