PHP 支持8种基本的数据类型。
四种标量类型:
两种复合类型:
最后是两种特殊类型:
boolean数据类型:
取值只能为True或者False,当其他类型转化为boolean类型时,以下值被认为是 FALSE
:
FALSE
自身
所有其它值都被认为是 TRUE
(包括任何资源)。
integer数据类型:
整型值可以使用十进制,十六进制或八进制进行表示,前面可以加上可选的符号(- 或者 +)。
八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。PHP 不支持无符号整数。Integer值的字长可以用常量PHP_INT_SIZE
来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量PHP_INT_MAX
来表示。
如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分,或者使用 round() 函数。
要明确地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。
FALSE
은 0(0)을 생성하고 TRUE
는 1(1)을 생성합니다. float 데이터 유형
부동 소수점 숫자의 단어 길이는 플랫폼에 따라 다르지만 일반적으로 최대값은 십진수 14자리(64비트 IEEE 형식)의 정밀도를 갖는 1.8e308입니다.
0.1 또는 0.7과 같은 단순한 소수는 약간의 정밀도 손실 없이 내부 이진 형식으로 변환할 수 없습니다. 이로 인해 혼란스러운 결과가 발생할 수 있습니다. 예를 들어 floor((0.1+0.7)*10)은 일반적으로 예상되는 8 대신 7을 반환합니다. 결과의 내부 표현은 실제로 7.9과 유사합니다.
이것은 유한한 자릿수로 특정 소수를 정확하게 표현하는 것이 불가능하다는 사실과 관련이 있습니다. 예를 들어 10진수로 1/3은 0.3이 됩니다.
따라서 부동 소수점 숫자 결과가 마지막 숫자까지 정확하다고 절대 신뢰하지 말고, 두 부동 소수점 숫자가 같은지 비교하지 마세요. 더 높은 정밀도가 필요하다면 임의 정밀도 수학 함수나 gmp 함수를 사용해야 합니다.