# 整型
[TOC]
## 概述
整型就是整數集 **Z**。整型可以用十進制、八進制、十六進制、二進制表示,可正可負。
Example #1 整型表達
~~~
<?php
$a = 1234; // 十進制數
$a = -123; // 負數
$a = 0123; // 八進制數 (等于十進制 83)
$a = 0x1A; // 十六進制數 (等于十進制 26)
$a = 0b11111111; // 二進制數字 (等于十進制 255)
?>
~~~
整型的范圍根據系統而定,整型值的字長可以用常量 **PHP_INT_SIZE** 表示,最大值可以用常量 **PHP_INT_MAX** 表示,最小值可以用常量 **PHP_INT_MIN** 表示。如果給定的數超出了整型的范圍,PHP會將其轉換為浮點型。
PHP沒有整除運算符,要將結果轉換為整數,可以使用強制類型轉換,或者使用[round()](http://php.net/manual/en/function.round.php)函數。
Exampel #2 round()函數的使用
~~~
<?php
/* Using PHP_ROUND_HALF_UP with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_UP); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP); // -1.5
/* Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5
/* Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5
/* Using PHP_ROUND_HALF_ODD with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD); // -1.5
?>
~~~
round()函數第一個參數是傳入的數或者表達式,第二個參數是精度,第三個參數是轉換的模式,有四舍五入、向下截斷、奇截斷和偶截斷四中模式。
## 其他數據類型轉換為整型
### booleans
FALSE產生0,TRUE產生1。
### 浮點型
在整數范圍內,結果會將小數部分截斷,在整數范圍之外,結果是未定義。
### 字符串
比較復雜,請看[String conversion to numbers](http://php.net/manual/en/language.types.string.php#language.types.string.conversion)。
### 其他數據類型
其他數據類型轉換為整型的結果是無法預料的,請不要嘗試。