PHP 자료형 영구 변환 방법은 settype() 함수를 사용합니다. 자료형 기입시 따옴표를 삽입해야 합니다. 숏코드도 존재해서 키워드를 생략할 수도 있습니다.
PHP 자료형 영구 변환 settype()
settype() 기본 형태
PHP 자료형은 settype()
함수를 통해서 변수값의 자료형을 영구적으로 변환시킬 수 있습니다. 자료형을 기입할 때 큰 따옴표 ""
나 작은 따옴표 ''
를 빠뜨리지 않도록 유의합니다.
settype ( 변수명, "자료형" );
예를 들어 $x = 99;
라는 선언문에서 현재 변수 $x
의 자료형은 정수형입니다. 변수 $x
의 자료형을 논리형으로 바꾸고 싶은 경우 아래와 같이 작성합니다.
settype ( $x, "bool" );
settype() 숏코드
settype()
함수는 아래와 같이 짧게 적을 수도 있습니다.
$변수명 = ( 자료형 ) $변수명;
$x = 99;
의 선언문에서 $x
의 자료형을 정수형에서 논리형으로 바꿀 경우 아래와 같이 작성합니다.
$x = ( bool ) $x;
자료형별 변환 종류
PHP 자료형의 변환은 논리형(boolean
or bool
), 정수형(integer
or int
), 실수형(float
or double
), 문자형(string
), 배열형(array
), 객체형(object
), null
형으로 가능합니다. 자료형의 확인은 var_dump()
함수를 사용했습니다.
논리형으로 영구 변환
논리형으로 자료형을 변환합니다. bool
또는 boolean
을 기입하면 됩니다.
<?php
$x = -3.14; //변수 $x에 실수형 데이터가 저장되었습니다.
settype ( $x, "boolean"); //변수 $x를 논리형(bool)으로 변환합니다.
var_dump ( $x ); //변수 $x의 자료형 종류를 출력합니다.
?>
결과
-3.14
변수값이 논리형으로 바뀌었습니다. 논리형 데이터는 음수 정수의 TRUE
로 반환됩니다.
bool(true)
정수형으로 영구 변환
정수형으로 변환시 integer
또는 int
라고 기입하면 됩니다.
<?php
$x = -3.14; //변수 $x에 실수형 데이터가 저장되었습니다.
settype ( $x, "integer"); //변수 $x를 정수형(integer)으로 변환합니다.
var_dump ( $x );//변수 $x의 자료형 종류를 출력합니다.
?>
결과
int(-3)
실수형 -3.14
가 정수형으로 바뀌었을 경우 소수점이 삭제되어 -3
이 됩니다.
정수란 -3, -2, -1과 같은 음의 정수, 0 그리고 +1, +2, +3과 같은 양의 정수를 말합니다. 실수란 정수 데이터 + 소수, 분수, 무리수 등의 숫자 형태를 모두 포함한 경우를 말합니다.
실수형으로 영구 변환
이번에는 숏코드를 사용해서 변환해보겠습니다. 실수형의 경우 float
또는 double
이라고 기입하면 됩니다.
<?php
$x = '3'; //변수 $x에 문자형 자료형 '3'이 저장되었습니다.
$x = ( "float" ) $x;
var_dump ( $x );
?>
결과
float(3)
문자형으로 영구 변환
정수형 자료형을 문자형 자료형으로 전환했습니다.
<?php
$x = 3;
settype ( $x, "string" );
var_dump ( $x );
?>
결과
string(1) "3"
문자형 자료형 "3"
이 확인됩니다.
배열형으로 영구 변환
<?php
$x = 3;//변수 $x에 정수형 자료인 3이 저장되었습니다.
$x = ( "array" ) $x;//변수 $x의 자료형을 배열형(array)로 변환합니다.
var_dump ( $x );
?>
결과
array(1) { [0]=> int(3) }
변수 $x
에 배열형 자료형이 한 자리수 저장되었습니다. 첫 번째 자리수의 값은 정수형(int) 3
입니다.
객체형으로 영구 변환
실수형 자료형을 객체형 데이터로 변환시켰습니다.
<?php
$x = 3.14;
settype ( $x, "object" );
var_dump ( $x );
?>
결과
object(stdClass)#1 (1) { ["scalar"]=> float(3.14) }
null형으로 영구 변환
문자형 자료형을 null
형으로 변환했습니다.
<?php
$x = '푸하하';
settype ( $x, "null" );
var_dump ( $x );
?>
결과
NULL
자료형 기입시 따옴표를 빠뜨리지 않도록 유의합니다.