타입 캐스팅(Type Casting, 형 변환)
타입 캐스팅은
변수의 데이터 타입을 명시적으로 변경하는 것을 의미합니다.
이를 위해, 값이나 변수 앞에 원하는 타입을 괄호로 묶어 변환할 수 있습니다.
캐스팅(Casting)은 변수의 데이터 타입을 명시적으로 변환하는 과정을 의미합니다.
PHP는 동적 타이핑(dynamic typing)을 지원하는 언어로, 변수에 저장되는 값의 타입을 자동으로 결정하지만, 개발자가 명시적으로 타입을 변경하고 싶을 때는 타입 캐스팅을 사용할 수 있습니다.
타입 캐스팅의 형식은 다음과 같습니다.
구문
타입 캐스팅은 값이나 변수 앞에 원하는 타입을 괄호로 묶어 변환할 수 있습니다.
type |
변환하고자 하는 데이터 타입입니다. |
---|---|
expression |
변환할 값 또는 변수입니다. |
지원하는 데이터 타입
- 정수 타입 -
(int)
또는(integer)
- 부울 타입 -
(bool)
또는(boolean)
- 부동소수점 숫자 타입 -
(float)
또는(double)
또는(real)
- 문자열 타입 -
(string)
또는(binary)
- 배열 타입 -
(array)
- 객체 타입 -
(object)
- NULL 타입 -
(unset)
알아두세요!
(integer)
는 (int)
의 별칭이고,
(boolean)
은 (bool)
의 별칭이고,
(binary)
는 (string)
의 별칭이고,
(double)
과 (real)
은 (float)
의 별칭입니다.
이러한 별칭들은 오래된 문법이거나 잘 사용되지 않는 표현들이므로 권장하지 않고, 표준 타입 캐스팅을 사용하는 것을 권장합니다.
PHP 8.0.0 버전부터 (real)
별칭은 더 이상 사용되지 않습니다.
PHP 7.2.0 버전부터 (unset)
캐스팅은 더 이상 사용되지 않습니다. PHP 8.0.0부터는 아예 제거됩니다. 대신, 변수에 직접 NULL
을 할당하는 방식을 사용해야 합니다.
(binary)
캐스팅과 b
접두사는 미래의 기능 지원을 위해 존재합니다. 현재는 (binary)
와 (string)
캐스팅이 동일한 동작을 수행하지만, 이것이 미래에는 변경될 수 있으므로 이에 의존해서는 안 됩니다.
예제
아래는 다양한 타입 캐스팅을 보여주는 예제입니다.
타입 캐스팅은 변환된 값을 반환하며 원본 변수나 값은 변경되지 않습니다.
주의할 점
PHP에서 타입 캐스팅(Type Casting)은 변수를 다른 데이터 타입으로 명시적으로 변환하는 방법입니다. 하지만 타입 캐스팅을 사용할 때는 예기치 않은 동작이나 오류를 방지하기 위해 몇 가지 중요한 점에 주의해야 합니다.
스칼라 변수의 배열 캐스팅
PHP에서 스칼라(scalar) 변수는 단일 값을 가지는 기본 데이터 타입을 의미합니다. 이러한 스칼라 변수는 정수, 실수, 문자열, 부울(boolean) 타입을 포함하며, 배열이나 객체와 같은 복합 데이터 타입과는 다릅니다.
스칼라(scalar) 변수를 배열로 캐스팅할 경우, 변환된 배열은 오직 첫 번째 요소만을 포함합니다. 따라서 다차원 배열이나 여러 값을 포함하는 배열을 생성할 수 없습니다.
스칼라 변수의 객체 캐스팅
스칼라 값으로 생성된 객체는 단일 속성 scalar
만을 가지며, 다수의 속성이나 복잡한 구조를 가진 객체를 생성할 수 없습니다. 복잡한 객체 구조를 만들고자 할 때는 다른 방법을 사용해야 합니다.