# 整型
[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)。
### 其他数据类型
其他数据类型转换为整型的结果是无法预料的,请不要尝试。