intval
(PHP 4, PHP 5, PHP 7)
intval — 获取变量的整数值
说明
通过使用指定的进制 base
转换(默认是十进制),返回变量 var
的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE
错误并返回 1。
参数
-
var
-
要转换成 integer 的数量值
-
base
-
转化所使用的进制
Note:
如果
base
是 0,通过检测var
的格式来决定使用的进制:- 如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex);否则,
- 如果字符串以 "0" 开始,使用 8 进制(octal);否则,
- 将使用 10 进制 (decimal)。
返回值
成功时返回 var
的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。
最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上, intval('1000000000000') 会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。
字符串有可能返回 0,虽然取决于字符串最左侧的字符。 使用 整型转换 的共同规则。
范例
Example #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
?>
注释
Note:
除非
var
是一个字符串,否则base
不会起作用。
更新日志
版本 | 说明 |
---|---|
5.1.0 | 当传入的 var 是 object,将会抛出 E_NOTICE 并返回 1。 |
参见
- boolval() - 获取变量的布尔值
- floatval() - 获取变量的浮点值
- strval() - 获取变量的字符串值
- settype() - 设置变量的类型
- is_numeric() - 检测变量是否为数字或数字字符串
- 类型转换的判别
- BCMath 任意精度数学函数