floatval php 实现
floatval 函数的基本用法
floatval 是 PHP 中用于获取变量的浮点值的函数。它会尝试将变量转换为浮点数(即小数或整数形式的浮点数)。
语法:

floatval(mixed $var): float
示例:

$string = "123.45abc";
$float = floatval($string); // 输出 123.45
$int = 42;
$float = floatval($int); // 输出 42.0
$bool = true;
$float = floatval($bool); // 输出 1.0
手动实现 floatval
如果需要手动实现类似 floatval 的功能,可以通过正则表达式或类型转换来提取字符串中的数字部分。
方法 1:使用类型转换
function custom_floatval($var) {
return (float)$var;
}
echo custom_floatval("3.14test"); // 输出 3.14
方法 2:使用正则表达式提取浮点数
适用于需要严格匹配数字部分的情况:
function custom_floatval($var) {
if (is_string($var)) {
preg_match('/-?\d+\.?\d*/', $var, $matches);
return $matches[0] ? (float)$matches[0] : 0.0;
}
return (float)$var;
}
echo custom_floatval("price: 99.99 USD"); // 输出 99.99
注意事项
floatval会忽略字符串中的非数字字符(从开头匹配数字,直到遇到非数字字符)。- 布尔值
true转换为1.0,false转换为0.0。 - 如果字符串不以数字开头(如
"abc123"),floatval会返回0.0。
性能优化建议
- 直接使用
(float)$var比floatval($var)稍快,但功能一致。 - 正则表达式方法适用于复杂字符串,但性能略低于直接类型转换。






