정의 및 사용법
PHP는 동적으로 유형이 지정된 언어로 알려져 있습니다. 변수의 명시적 유형 선언은 PHP에서 필요하지도 지원하지도 않습니다. C, C++, Java와 달리 PHP 변수의 유형은 할당된 값에 따라 결정되며 그 반대는 아닙니다. 또한 변수에 다른 유형의 값을 할당하면 유형도 변경됩니다. 동적으로 변하는 변수 값을 다루기 위한 PHP의 접근 방식을 타입 저글링(type juggling)이라고 합니다.
$var="Hello"; // variable is string type $var=100; //same variable now becomes int
식을 계산하는 동안에도 유형 저글링이 발생합니다. 이 예에서 숫자를 포함하는 문자열 변수는 덧셈 표현식 평가를 위해 자동으로 정수로 변환됩니다.
예시
<?php $var1=100; $var2="100"; $var3=$var1+$var2; var_dump($var3); ?>
출력
이것은 다음 결과를 생성합니다 -
int(200)
문자열이 숫자로 시작하는 경우, 뒤에 오는 숫자가 아닌 문자는 계산을 수행하는 동안 무시됩니다. 그러나 PHP 파서는 아래와 같이 알림을 발행합니다.
예시
<?php $var1=100; $var2="100 days"; $var3=$var1+var2; var_dump($var3); ?>
출력
이것은 다음 결과를 생성합니다 -
PHP Notice: A non well formed numeric value encountered in ... int(200)
유형 캐스팅은 변수를 특정 유형으로 사용하도록 강제합니다. 다음 스크립트는 다양한 유형 캐스트 연산자의 예를 보여줍니다.
예시
<?php $var1=100; $var2=(boolean)$var1; $var3=(string)$var1; $var4=(array)$var1; $var5=(object)$var1; var_dump($var2, $var3, $var4, $var5); ?>
출력
이것은 다음 결과를 생성합니다 -
bool(true) string(3) "100" array(1) { [0]=> int(100) } object(stdClass)#1 (1) { ["scalar"]=> int(100) }
변수를 문자열로 캐스팅하는 것도 큰따옴표로 묶인 문자열로 수행할 수 있습니다.
예시
<?php $var1=100.50; $var2=(string)$var1; $var3="$var1"; var_dump($var2, $var3); ?>
출력
이것은 다음 결과를 생성합니다 -
string(5) "100.5" string(5) "100.5"