FILTER_FLAG_ALLOW_THONSAND与FILTER_VALIDATE_FLOAT结合使用有什么作用



在FILTER_VALIDATE_FLOAT的上下文中,FILTER_FLAG_ALLOW_THOUSAND做什么?文档中说它是FILTER_VALIDATE_FLOAT支持的选项,但没有说明它的实际功能,那么之间有什么区别

filter_var($val, FILTER_VALIDATE_FLOAT);

filter_var($val, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND);

FILTER_FLAG_ALLOW_THOUSAND记录在一个单独的url上,此处:https://www.php.net/manual/en/filter.filters.flags.php

报价:

允许逗号(,(作为数字中的千位分隔符。

和这个

$val = "123,456,789.123";
var_dump(
($v1=filter_var($val, FILTER_VALIDATE_FLOAT)),
($v2=filter_var($val, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND)),
$v1===$v2
);

输出:

bool(false)
float(123456789.123)
bool(false)

这个小测试向您展示了差异:

$val = "1,000.7";
$result1 = filter_var($val, FILTER_VALIDATE_FLOAT);
//result1 : bool(false)
$result2 = filter_var($val, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND);
//result2 : float(1000.7)

最新更新