PHP는 변수 정의에서 명시적인 유형 정의를 요구하거나 지원하지 않습니다. 변수 유형은 변수가 사용되는 컨텍스트에 따라 결정됩니다. 즉, $var 변수에 문자열 값을 할당하면 $var는 문자열이 됩니다. $var에 정수를 할당하면 정수가 됩니다.
PHP의 자동 유형 변환의 예는 덧셈 연산자"+"입니다. 피연산자 중 하나라도 float이면 모든 피연산자는 float로 처리되며 결과도 float입니다. 그렇지 않으면 피연산자는 정수로 해석되고 결과도 정수입니다. 이는 피연산자 자체의 유형을 변경하지 않고 피연산자가 평가되는 방식과 표현식 자체의 유형만 변경한다는 점에 유의하십시오.
<?php $foo = "0" ; // $foo 是字符串 (ASCII 48) $foo += 2 ; // $foo 现在是一个整数 (2) $foo = $foo + 1.3 ; // $foo 现在是一个浮点数 (3.3) $foo = 5 + "10 Little Piggies" ; // $foo 是整数 (15) $foo = 5 + "10 Small Pigs" ; // $foo 是整数 (15) ?>
위의 두 예가 이상해 보인다면 문자열을 숫자로 변환을 참조하세요.
변수를 특정 유형으로 평가하려면 유형 Coercion 섹션을 참조하세요. 변수 유형을 변경하려면 settype()을 참조하세요.
이 섹션의 예제를 테스트하려면 var_dump() 함수를 사용할 수 있습니다.
참고:
배열로의 자동 변환 동작은 현재 정의되지 않았습니다.
또한, PHP는 배열 첨자와 동일한 구문을 사용하여 문자열 첨자에 액세스하는 것을 지원하므로 다음 예는 모든 PHP 버전에서 유효합니다.
<?php $a = 'car' ; // $a is a string $a [ 0 ] = 'b' ; // $a is still a string echo $a ; // bar ?>
유형 캐스트
PHP와 C의 유형 캐스트는 매우 유사합니다. 대상 유형으로 변환할 변수를 괄호로 묶습니다.
<?php $foo = 10 ; // $foo is an integer $bar = (boolean) $foo ; // $bar is a boolean ?>
허용되는 형변환은 다음과 같습니다:
(int), (integer) - 정수로 변환
(bool), (boolean) - boolean 유형 boolean
(float )으로 변환, (double), (real) - float로 변환 float
(string) - string으로 변환 string
(array) - array array
(object)로 변환 - object object
(설정되지 않음) - NULL로 변환(PHP 5)
(바이너리) 변환 및 b 접두사 변환 지원은 PHP 5.2.1의 새로운 기능입니다.
대괄호 안에 공백과 탭이 허용되므로 다음 두 예는 동일하게 작동합니다.
<?php $foo = (int) $bar ; $foo = ( int ) $bar ; ?>
문자열 리터럴과 변수를 이진 문자열로 변환:
<?php $binary = (binary) $string ; $binary = b"binary string" ; ?>
참고:
대신 변수를 큰따옴표로 묶을 수 있습니다. 변수를 문자열로 변환하는 방법:
<?php $foo = 10 ; // $foo 是一个整数 $str = " $foo " ; // $str 是一个字符串 $fst = (string) $foo ; // $fst 也是一个字符串 // 输出 "they are the same" if ( $fst === $str ) { echo "they are the same" ; } ?>
위 내용은 PHP 데이터 유형 변환의 차별의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!