## 整型(integer)
整数是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的某个数。
整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。
要使用八进制表达,数字前必须加上 `0`(零)。要使用十六进制表达,数字前必须加上 `0x`。要使用二进制表达,数字前必须加上 `0b`。
```
<?php
$a = 1234; // 十进制数
$a = -123; // 负数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
?>
```
### 整数溢出
如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
32位系统下的整数溢出
```
<?php
$large_number = 2147483647;
var_dump($large_number); // int(2147483647)
$large_number = 2147483648;
var_dump($large_number); // float(2147483648)
?>
```
64位系统下的整数溢出
```
<?php
$large_number = 9223372036854775807;
var_dump($large_number); // int(9223372036854775807)
$large_number = 9223372036854775808;
var_dump($large_number); // float(9.2233720368548E+18)
?>
```
### 转换为整型
要明确地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。
**从浮点型转换**
当从浮点数转换成整数时,将向下取整。 当超出数值范围则结果未知。
```
<?php
$number = (int)123.45;
var_dump($number); // int(123)
$number = (int) 9223372036854775808.1234;
var_dump($number); // int(-9223372036854775808)
$number = (int) 92233720368547755678808.1234;
var_dump($number); // int(0)
?>
```
**从布尔值转换**
FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。
```
<?php
$bool = TRUE;
var_dump((int) $bool); // int(1)
$bool = FALSE;
var_dump((int) $bool); // int(0)
?>
```
**从字符串转换**
```
<?php
$str = (int) "abcd";
var_dump($str); // int(0)
$str = (int) "12345";
var_dump($str); // int(12345)
$str = (int) "123abc";
var_dump($str); // int(123)
$str = (int) "0123abc";
var_dump($str); // int(123)
?>
```
**从进制转换**
```
<?php
$a = (int) 0x1A; // 十六进制数 (等于十进制 26)
var_dump($a); // int(26)
$a = (int) 0b11111111; // 二进制数字 (等于十进制 255)
var_dump($a); int (255)
?>
```
- 基本语法
- PHP标记
- 指令分隔符
- 从HTML中分离
- 注释
- 数据类型
- 布尔值
- 整数
- 浮点数
- 字符串
- 数组
- 对象
- 资源
- 空值
- 变量
- 基础
- 预定义变量
- 变量范围
- 可变变量
- 常量
- 常量语法
- 魔术常量
- 运算符
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 递增与递减运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
- 流程控制
- if条件结构
- switch条件结构
- while循环结构
- do-while循环结构
- for循环结构
- foreach循环结构
- 包含文件
- 函数
- 自定义函数
- 可变函数
- 匿名函数
- 递归函数
- 类与对象
- 基本概念
- 属性
- 方法
- 类常量
- 构造函数和析构函数
- 访问控制
- 继承
- 抽象类
- 接口
- Trait
- 重载
- 对象遍历
- 魔术方法
- Final关键字
- 命名空间
- 自动加载
- 错误处理
- 错误显示
- 错误日志
- 错误报告
- 自定义错误处理
- 异常处理
- 异常处理机制
- 扩展异常处理类
- 字符操作
- 数组操作
- 时间操作
- 表单操作
- GET提交
- POST提交
- 文件上传
- 会话控制
- COOKIE操作
- SESSION操作
- 文件操作
- 文件属性
- 读取文件
- 写入文件
- 文件管理
- 文件锁
- 目录处理
- 路径处理
- 网络操作
- HTTP协议
- Socket操作
- CURL操作
- PDO操作
- 介绍
- 连接管理
- 预处理语句
- 事务处理
- 错误处理
- 图像操作
- 正则表达式
- 标准推荐
- 包管理器
- 设计模式
- 常用算法
- 安全防御
- XSS防御
- CSRF防御