PHP intval() 函数返回变量的整数值,使用指定的基数进行转换(默认为以 10 为基数,即10进制)。
我们常用该函数来将字符串转为整数类型,防止简单的sql注入。
语法
intval(variable, base)
参数
variable | 必需。 指定要检查的变量。必须是标量类型。 |
base | 可选。 指定转换的基数。如果基数未指定或为 0,则使用的基数由变量的格式确定:
|
返回值
返回value 的整数值表示成功, 0 表示失败。空数组返回0,非空数组返回1。
最大值取决于系统。 32 位系统的最大有符号整数范围为 -2147483648 到 2147483647。64 位系统的最大有符号整数值为 9223372036854775807。
字符串很可能返回 0,尽管这取决于字符串最左边的字符。如果字符串是数字或前导数字,则它将解析为相应的整数值,否则将转换为 0。
注意:如果对象是传递给此函数,它会抛出 E_NOTICE 级别错误并返回 1。
示例:
下面的示例显示intval() 函数的用法。
<?php
echo 'intval(10): '.intval(10)."\n";
echo 'intval(10.5): '.intval(10.5)."\n";
echo 'intval("10"): '.intval("10")."\n";
echo 'intval("+10"): '.intval("+10")."\n";
echo 'intval("-10"): '.intval("-10")."\n";
echo 'intval(042): '.intval(042)."\n";
echo 'intval("042"): '.intval("042")."\n";
echo 'intval(1e10): '.intval(1e10)."\n";
echo 'intval("1e10"): '.intval("1e10")."\n";
echo 'intval(0x1A): '.intval(0x1A)."\n";
echo 'intval("0x1A"): '.intval("0x1A")."\n";
echo 'intval(true): '.intval(true)."\n";
echo 'intval(false): '.intval(false)."\n";
echo 'intval(42, 8): '.intval(42, 8)."\n";
echo 'intval("42", 8): '.intval("42", 8)."\n";
echo 'intval("Hello10"): '.intval("Hello10")."\n";
echo 'intval("10Hello"): '.intval("10Hello")."\n";
echo 'intval("10.5Hi"): '.intval("10.5Hi")."\n";
?>
上述代码的输出将是:
intval(10): 10
intval(10.5): 10
intval("10"): 10
intval("+10"): 10
intval("-10"): -10
intval(042): 34
intval("042"): 42
intval(1e10): 10000000000
intval("1e10"): 10000000000
intval(0x1A): 26
intval("0x1A"): 0
intval(true): 1
intval(false): 0
intval(42, 8): 42
intval("42", 8): 34
intval("Hello10"): 0
intval("10Hello"): 10
intval("10.5Hi"): 10
示例:
再考虑一个示例,演示如何使用此函数数组和大数。
<?php
$arr1 = array();
echo intval($arr1)."\n";
$arr2 = array(1, 2, 3);
echo intval($arr2)."\n";
echo intval(420000000000000000000)."\n";
echo intval('420000000000000000000')."\n";
?>
上述代码的输出将是:
0
1
-4275113695319687168
9223372036854775807