integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的某個(gè)數(shù)。
語法:
整型值可以使用十進(jìn)制,十六進(jìn)制,八進(jìn)制或二進(jìn)制表示,前面可以加上可選的符號(hào)(- 或者 +)。
二進(jìn)制表達(dá)的 integer 自 PHP 5.4.0 起可用。
要使用八進(jìn)制表達(dá),數(shù)字前必須加上 0(零)。要使用十六進(jìn)制表達(dá),數(shù)字前必須加上 0x。要使用二進(jìn)制表達(dá),數(shù)字前必須加上 0b。
例如:整數(shù)文字表達(dá)
$a = 1234; // 十進(jìn)制數(shù)
$a = -123; // 負(fù)數(shù)
$a = 0123; // 八進(jìn)制數(shù) (等于十進(jìn)制 83)
$a = 0x1A; // 十六進(jìn)制數(shù) (等于十進(jìn)制 26)
$a = 0b11111111; // 二進(jìn)制數(shù)字 (等于十進(jìn)制 255)
?>
integer 語法的結(jié)構(gòu)形式是:
decimal : [1-9][0-9]* | 0 hexadecimal : 0[xX][0-9a-fA-F]+ octal : 0[0-7]+ binary : 0b[01]+ integer : [+-]?decimal | [+-]?hexadecimal | [+-]?octal | [+-]?binary
整型數(shù)的字長(zhǎng)和平臺(tái)有關(guān),盡管通常最大值是大約二十億(32 位有符號(hào))。64 位平臺(tái)下的最大值通常是大約 9E18,除了 Windows 下 PHP 7 以前的版本,總是 32 位的。 PHP 不支持無符號(hào)的 integer。Integer 值的字長(zhǎng)可以用常量 PHP_INT_SIZE
來表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量 PHP_INT_MAX
來表示,最小值可以在 PHP 7.0.0 及以后的版本中用常量 PHP_INT_MIN
表示。
PHP 7 以前的版本里,如果向八進(jìn)制數(shù)傳遞了一個(gè)非法數(shù)字(即 8 或 9),則后面其余數(shù)字會(huì)被忽略。PHP 7 以后,會(huì)產(chǎn)生 Parse Error。
如果給定的一個(gè)數(shù)超出了 integer 的范圍,將會(huì)被解釋為 float。同樣如果執(zhí)行的運(yùn)算結(jié)果超出了 integer 范圍,也會(huì)返回 float。
PHP 中沒有整除的運(yùn)算符。1/2 產(chǎn)生出 float 0.5。 值可以舍棄小數(shù)部分,強(qiáng)制轉(zhuǎn)換為 integer,或者使用 round() 函數(shù)可以更好地進(jìn)行四舍五入。
轉(zhuǎn)換為整型:
要明確地將一個(gè)值轉(zhuǎn)換為 integer,用 (int) 或 (integer) 強(qiáng)制轉(zhuǎn)換。不過大多數(shù)情況下都不需要強(qiáng)制轉(zhuǎn)換,因?yàn)楫?dāng)運(yùn)算符,函數(shù)或流程控制需要一個(gè) integer 參數(shù)時(shí),值會(huì)自動(dòng)轉(zhuǎn)換。還可以通過函數(shù) intval() 來將一個(gè)值轉(zhuǎn)換成整型。