intval php 实现
intval 函数的基本用法
intval 是 PHP 中用于将变量转换为整数的函数。其基本语法如下:
int intval(mixed $value, int $base = 10)
$value:需要转换的变量,可以是字符串、浮点数、布尔值等。$base:可选参数,指定进制转换的基数(默认为 10)。仅当$value为字符串时有效。
转换规则示例
字符串转换为整数:
echo intval("42"); // 输出 42
echo intval("3.14"); // 输出 3
浮点数转换为整数:
echo intval(3.14); // 输出 3
echo intval(5.999); // 输出 5
布尔值转换为整数:
echo intval(true); // 输出 1
echo intval(false); // 输出 0
进制转换示例
使用 $base 参数处理不同进制的字符串:
echo intval("1a", 16); // 十六进制,输出 26
echo intval("11", 2); // 二进制,输出 3
特殊情况的处理
非数值字符串的转换:
echo intval("hello"); // 输出 0
echo intval("10hello"); // 输出 10(解析到非数字字符停止)
数组和对象的转换:
echo intval([1, 2]); // 输出 1(PHP 8.1 前行为,8.1 后弃用警告)
echo intval(new stdClass()); // 输出 1(PHP 8.1 前行为,8.1 后弃用警告)
注意事项
- PHP 8.1+ 的变更:从 PHP 8.1 开始,对数组或对象调用
intval会触发弃用警告。应优先使用类型检查或显式逻辑处理。 - 性能考虑:直接类型转换
(int)$value比intval($value)更快,但后者支持进制转换。 - 边界值:超出整数范围的浮点数(如
1e20)可能返回平台相关的截断值(32/64 位差异)。







