intval
(PHP 4, PHP 5, PHP 7, PHP 8)
intval — 獲取變數的整數值
說明
通過使用指定的進位制 base
轉換(預設是十進制),返回變數 value
的 int 數值。
intval() 不能用於 object,否則會產生
E_NOTICE
錯誤並返回 1。
參數
-
value
-
要轉換成 integer 的數量值
-
base
-
轉化所使用的進位制
注意:
如果
base
是 0,通過檢測value
的格式來決定使用的進位制:- 如果字串包括了 "0x" (或 "0X") 的字首,使用 16 進位制 (hex);否則,
- 如果字串以 "0" 開始,使用 8 進位制(octal);否則,
- 將使用 10 進位制 (decimal)。
返回值
成功時返回 value
的 integer 值,失敗時返回 0。
空的 array 返回 0,非空的 array 返回 1。
最大的值取決於操作系統。 32 位系統最大帶符號的 integer 範圍是 -2147483648 到 2147483647。舉例,在這樣的系統上,intval('1000000000000')
會返回
2147483647。64 位系統上,最大帶符號的 integer 值是
9223372036854775807。
字串有可能返回 0,雖然取決於字串最左側的字元。 使用 整型轉換 的共同規則。
範例
示例 #1 intval() 例子
下面的例子執行于 32 位系統上。
<?php
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 1410065408
echo intval('1e10'); // 1
echo intval(0x1A); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
echo intval(false); // 0
echo intval(true); // 1
?>
註釋
注意:
除非
value
是一個字串,否則base
不會起作用。
參見
- boolval() - 獲取變數的布爾值
- floatval() - 獲取變數的浮點值
- strval() - 獲取變數的字串值
- settype() - 設定變數的型別
- is_numeric() - 檢測變數是否為數字或數字字串
- 型別轉換的判別
- BCMath 任意精度數學函式