NULL
의 개념
NULL
타입은
변수가 정의되지 않거나 변수에 값이 할당되지 않았음을 나타내는 데이터 타입입니다.
이 데이터 타입의 값은 하나뿐이며 null
값입니다.
변수에 null
값을 할당했을 때에도 해당 변수는 NULL
타입이 됩니다.
null
값은
NULL
타입의 유일한 값으로 NULL
타입인 변수의 모든 값은 대소문자를 구분하지 않는 상수 null
값입니다.
변수에 null
값을 할당하면 해당 변수는 NULL
타입이 됩니다.
NULL
타입과 null
값의 개념을 정리하자면 다음과 같이 표현할 수 있습니다.
NULL
타입은
변수가 정의되지 않거나 변수에 값이 할당되지 않았음을 나타내는 데이터 타입입니다.
또한, 변수에 명시적으로 null
값을 할당했을 때에도 NULL
타입을 갖게 됩니다. NULL
타입의 값은 하나뿐이며 대소문자를 구분하지 않는 상수 null
입니다.
타입을 말하는 NULL
이나 값을 말하는 null
모두 대소문자를 구분하지 않습니다.
NULL
타입은 Null
타입, null
타입과 동일하며, null
값은 Null
값, NULL
값과 동일합니다.
여기에서는 타입과 값을 편의상 구분하기 위해서 타입은 'NULL
타입', 값은 'null
값'이라고 이미 표기했고 앞으로도 이렇게 표기하겠습니다.
예제
NULL
타입 체크하기
gettype()
함수나 is_null()
함수로 변수의 NULL
타입을 체크할 수 있습니다.
gettype()
함수
gettype()
함수는
변수의 데이터 타입을 문자열로 반환합니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
is_null()
함수
is_null()
함수는
매개변수로 전달된 값이 NULL
타입이면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
다음과 같은 예제를 통해 이해할 수 있습니다.
'NULL'
데이터 타입을 체크할 때는 is_null()
함수를 사용하는 것이 좋습니다.
is_null()
함수는 NULL
타입에만 적용되므로, gettype()
함수보다 NULL
타입을 체크하는 하는데 있어서 더 명시적이고 안전합니다.
NULL
타입으로 변환하기
변수를 NULL
타입으로 변환하려면 오직 변수에 null
값을 할당하는 것입니다.
주의할 점
변수를 NULL
타입으로 변환하기 위해서 unset()
함수의 사용이나 (unset) $var
와 같은 데이터 타입 저글링(Type Juggling)을 사용하지 마세요.
unset()
함수의 사용
unset()
함수는 변수를 제거하는 데 사용됩니다. 하지만 이 함수를 사용하여 변수를 NULL
타입으로 변환하는 것은 안전하지 않을 수 있습니다. 왜냐하면 unset()
함수를 사용하면 변수가 메모리에서 완전히 제거되기 때문입니다. 변수를 NULL
타입으로 변환하는 것은 단지 값이 없음을 나타내는 것인데, unset()
을 사용하면 변수 자체가 제거되어 버립니다.
그리고, PHP 서버 설정에 따라 unset()
함수를 사용하여 변수를 제거하면 해당 변수에 접근할 때 "Notice: Undefined variable"과 같은 경고가 발생할 수 있습니다. 이는 변수가 더 이상 존재하지 않기 때문에 해당 변수에 접근하려고 할 때 발생하는 것입니다.
(unset) $var
와 같은 데이터 타입 저글링(Type Juggling)을 사용
이 기능은 PHP 7.2.0부터 사용이 중단되었으며 PHP 8.0.0부터 제거되었습니다. 이 기능에 의존하는 것은 매우 권장되지 않습니다.
변수를 NULL
타입으로 변환하려면 오직 변수에 null
값을 할당하는 것입니다.
NULL
타입을 부울(boolean) 타입으로 평가하면 false
NULL
타입을 부울(boolean) 타입으로 평가하면 false
로 평가됩니다.
NULL
타입과 빈 문자열, 빈 배열 구분
빈 문자열이나 빈 배열은 NULL
타입이 아닙니다.