intval() 函数用于获取变量的整数值。

语法

int intval ( mixed $var [, int $base = 10 ] )

参数说明:

  • $var:要转换成 integer 的数量值。
  • $base:转化所使用的进制。

如果 base 是 0,通过检测 var 的格式来决定使用的进制:

  • 如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制 (hex);否则,
  • 如果字符串以 “0” 开始,使用 8 进制(octal);否则,
  • 将使用 10 进制 (decimal)。

重要事项:

虽然默认值是10,但是在未指定 intval() 函数的第二个参数,并且输入字符串以前导零开头,PHP 会将数字解释为八进制值。

例如,如果您有输入字符串“0123”,PHP 会将其解释为八进制数 83(十六进制为 0x53)。 但是,如果输入字符串没有前导零,或者如果第二个参数指定为不同的基数,例如基数 10,则输入字符串将被解释为十进制数。

了解此行为很重要,因为如果您没有正确处理可能包含八进制值的输入,它可能会导致意外结果或代码漏洞。 为避免这种情况,请在使用 intval() 时始终显式指定基本参数,或使用其他函数(例如 filter_var() 或 ctype_digit() )来验证和清理输入。

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

作者 admin

百度广告效果展示