Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 유형 저글링

<시간/>

정의 및 사용법

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"