整型
PHP 中的整數可以在基數 2(二進位制),基數 8(八進位制),基數 10(十進位制)或基數 16(十六進位制)中本機指定。
$my_decimal = 42;
$my_binary = 0b101010;
$my_octal = 052;
$my_hexadecimal = 0x2a;
echo ($my_binary + $my_octal) / 2;
// Output is always in decimal: 42
整數長度為 32 或 64 位,具體取決於平臺。常量 PHP_INT_SIZE
以位元組為單位儲存整數大小。PHP_INT_MAX
和(自 PHP 7.0 起)PHP_INT_MIN
也可用。
printf("Integers are %d bits long" . PHP_EOL, PHP_INT_SIZE * 8);
printf("They go up to %d" . PHP_EOL, PHP_INT_MAX);
根據需要從浮點數,布林值和字串自動建立整數值。如果需要顯式型別轉換,可以使用 (int)
或 (integer)
強制轉換:
$my_numeric_string = "123";
var_dump($my_numeric_string);
// Output: string(3) "123"
$my_integer = (int)$my_numeric_string;
var_dump($my_integer);
// Output: int(123)
整數溢位將通過轉換為 float 來處理:
$too_big_integer = PHP_INT_MAX + 7;
var_dump($too_big_integer);
// Output: float(9.2233720368548E+18)
PHP 中沒有整數除法運算子,但它可以使用隱式轉換進行模擬,隱式轉換總是通過丟棄浮點部分來舍入。從 PHP 版本 7 開始,新增了整數除法函式。
$not_an_integer = 25 / 4;
var_dump($not_an_integer);
// Output: float(6.25)
var_dump((int) (25 / 4)); // (see note below)
// Output: int(6)
var_dump(intdiv(25 / 4)); // as of PHP7
// Output: int(6)
(請注意,(25 / 4)
周圍的額外括號是必需的,因為 (int)
的優先順序高於分割槽)