## 整型(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防御