PHP는 8가지 기본 데이터 유형을 지원합니다.
4가지 스칼라 유형:
? 부울(Boolean)
? 정수(정수)
? float(부동 소수점 유형, double이라고도 함)
? 문자열(문자열)
두 가지 복합 유형:
? array)
? 객체(object)
마지막으로 두 가지 특수 유형이 있습니다:
? 리소스( Resources)
? NULL(유형 없음)
코드의 가독성을 보장하기 위해 몇 가지 의사 유형이 있습니다:
? 혼합(혼합형)
? 숫자(숫자형)
? 콜백(콜백형)
유사변수 ...
변수 유형은 일반적으로 프로그래머가 설정하지 않으며, 오히려 변수가 사용되는 컨텍스트에 따라 런타임 시 PHP에 의해 결정됩니다. 표현식의 값과 유형을 확인하려면
var_dump() 함수를 사용하세요. 디버깅을 위해 사람이 읽을 수 있는 형식 표현을 원하는 경우 다음을 사용하세요.
gettype() 함수입니다. 유형을 확인하려면 gettype()을 사용하지 말고 is_type 함수를 사용하십시오. 변수를 특정 유형으로 강제 지정하려면 캐스트 또는
settype() 함수입니다. [boolean]
부울 값을 지정하려면 TRUE 또는 FALSE 키워드를 사용하세요. 둘 다 대소문자를 구분하지 않습니다.
부울로 변환
값을 부울로 명시적으로 변환하려면 (bool) 또는 (boolean)을 사용하여 캐스팅합니다.
부울로 변환하면 다음 값은 FALSE로 간주됩니다. 부울 값 자체가 FALSE입니다
? 정수 값 0(영)
? 부동 소수점 값 0.0(영)
? 빈 문자열 및 문자열 "0"
? 요소가 포함되지 않은 배열
? 멤버 변수가 포함되지 않은 개체(PHP 4.0에만 해당)
? 아직 값이 할당되지 않음)
빈 태그에서 생성된 SimpleXML 개체
[정수]
정수 값은 선택적 기호(- 또는 +)가 앞에 오는 10진수, 16진수, 8진수 또는 2진수 표현을 사용합니다.
정수의 이진 표현은 PHP 5.4.0부터 가능합니다. 8진수 표기법을 사용하려면 숫자 앞에 다음이 와야 합니다.
0(제로). 16진수 표현을 사용하려면 숫자 앞에 0x가 와야 합니다. 이진 표현을 사용하려면 숫자 앞에 0b가 와야 합니다. 정수값의 단어 길이는 PHP_INT_SIZE 상수로 표현할 수 있습니다. PHP 4.4.0, PHP 5.0.5부터 최대값은 상수로 표현할 수 있습니다.
PHP_INT_MAX를 나타냅니다. 주어진 숫자가 정수 범위를 초과하면 부동소수점으로 해석됩니다. 마찬가지로 연산 결과가 정수 범위를 초과하는 경우에도 float가 반환됩니다.
PHP에는 정수 나누기 연산자가 없습니다.
1/2는 float 0.5를 산출합니다. 값을 정수로 변환하거나 소수 부분을 버리거나 더 나은 반올림을 위해 round() 함수를 사용할 수 있습니다. 정수로 변환
값을 명시적으로 정수로 변환하려면 (int) 또는 (integer) 캐스트를 사용합니다.
[float]
부동 소수점 숫자는 정밀도가 제한되어 있습니다. 0.1이나 0.7과 같이 십진법으로 정확하게 표현할 수 있는 유리수는 가수가 아무리 많아도 내부적으로 사용되는 이진수로는 정확하게 표현할 수 없기 때문에 약간의 정밀도를 잃지 않고 이진수 형식으로 변환할 수 없습니다. 이로 인해 혼란스러운 결과가 발생할 수 있습니다. 예를 들어
floor((0.1+0.7)*10)은 일반적으로 예상되는 8 대신 7을 반환합니다. 왜냐하면 결과의 내부 표현은 7.9999999999999991118... 과 같기 때문입니다. 따라서 부동 소수점 숫자 결과가 마지막 자리까지 정확하다고 믿지 말고, 두 부동 소수점 숫자가 같은지 비교하지 마세요. 정말로 더 높은 정밀도가 필요한 경우 임의 정밀도 수학 함수나 gmp 함수를 사용해야 합니다.
【NULL】
특수 NULL 값은 변수에 값이 없음을 나타냅니다. NULL 유형의 유일한 가능한 값은 NULL입니다.
다음과 같은 경우 변수는 NULL로 간주됩니다.
에 NULL이 할당되어 있습니까?
아직 배정되지 않았나요?
이
설정되지 않았습니다().
[유형 변환 판단]
허용되는 캐스트는
? (int), (integer) - Integer로 변환됩니다. 정수
? (bool), (boolean) - Boolean 형식으로 변환
? (float), (double), (real) - float Point로 변환 type float
?(문자열) - 문자열 문자열로 변환
?(배열) - 배열 배열로 변환
? ) - 객체 객체로 변환
? (설정되지 않음) - NULL로 변환 (PHP 5)
【변수 처리 기능】
?boolval — 변수의 부울 값 가져오기
?debug_zval_dump — 내부 zend 값의 문자열 표현을 덤프하여 출력
?doubleval — floatval의 별칭
?empty — 변수가 비어 있는지 확인
?floatval — 변수의 부동 소수점 값을 가져옵니다.
?get_define_vars — 정의된 모든 변수로 구성된 Array에서 반환한 값을 반환합니다.
?get_resource_type - 리소스 유형을 반환합니다.
?gettype - 변수의 유형을 가져옵니다.
?import_request_variables — GET/POST/Cookie 변수를 전역 범위로 가져옵니다.
?intval — 변수의 정수 값을 가져옵니다.
?is_array — 확인 변수가 Array
?is_bool — 변수가 부울 유형인지 확인
?is_callable — 매개변수가 합법적인 호출 가능 구조인지 확인
? is_double — is_float의 별칭
?is_float — 변수가 부동 소수점 유형인지 확인
?is_int — 변수가 정수
?is_integer — is_int
?is_long의 별칭 — is_int
?is_null의 별칭 — 확인 변수가 NULL인지 여부
?is_numeric — 변수가 숫자인지 아니면 숫자의 문자열인지 확인
?is_object — 변수가 객체인지 확인
?is_real — is_float의 별칭
?is_resource — 변수가 리소스 유형인지 확인
?is_scalar — 변수는 스칼라입니다
?is_string — 변수가 문자열인지 확인
?isset — 변수가 설정되었는지 감지
?print_r — 변수에 대한 이해하기 쉬운 정보를 인쇄합니다.
?serialize — 값의 저장 가능한 표현 생성
?settype — 변수 유형 설정
?strval — 가져오기 변수 문자열 값
?unserialize — 저장된 표현에서 PHP 값을 생성합니다
?unset — 주어진 변수를 설정 해제합니다
? var_dump — 변수에 대한 정보 인쇄
?var_export — 변수의 문자열 표현을 출력하거나 반환
<?php
// boolean
$bFlag = true;
if($bFlag)
{
echo '变量$bFlag为真'.'<br>';
}
else
{
echo '变量$bFlag为假'.'<br>';
}
// integer
$iVal = 12345678;
echo '十进制的结果'.$iVal.'<br>';
$a1 = 1234; // 十进制数
$a2 = -123; // 负数
$a3 = 0123; // 八进制数 (等于十进制 83)
$a4 = 0x1A; // 十六进制数 (等于十进制 26)
$large_number = 2147483647;
echo var_dump($large_number).'<br>';
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
// float
$fVal = 3.141592653;
echo '变量$fVal的值是'.$fVal.'<br>';
// null
$str1 = null;
$str2 = 'str';
if(is_null($st1))
{
echo '$str1为null'.'<br>';
}
// 调试某个类型
echo gettype($str2).'<br>';
if(is_string($str2))
{
echo '$str2为string类型'.'<br>';
}
// 销毁对象
unset($str2);
if(is_null($st1))
{
echo '$str2为null'.'<br>';
}
?>
로그인 후 복사
위의 내용은 PHP 데이터 유형을 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.