PHP - 使用filter_var和FILTER_VALIDATE_FLOAT进行BUG

时间:2010-05-28 15:10:58

标签: php range filter-var

我认为这个filter_var中有一个错误,或者我做错了什么: 试试这个:

        $options = array(
            'options' => array(
                'default' => 3,
                'min_range' => 1000.0,
                'max_range' => 5000.6,
            )
        );

  $VariableValue2 = 5698;
  $VariableValue4 = 5698.2;

  $chicco3 = filter_var($VariableValue2, FILTER_VALIDATE_INT, $options);
  $chicco4 = filter_var($VariableValue4, FILTER_VALIDATE_FLOAT, $options);

它假设不验证它......实际值:5698大于5000.6 !!!! 但是使用FILTER_VALIDATE_INT它可以工作!它返回3是默认值,以防它不验证它...完美...

相反,使用FILTER_VALIDATE_FLOAT验证它...它返回5698.2 !!!我做错了什么???

谢谢大家......

Samuele

2 个答案:

答案 0 :(得分:8)

FILTER_VALIDATE_FLOAT不接受范围选项。查看doc

答案 1 :(得分:7)

检查here;看起来你在过滤器上使用了错误的选项。 min_rangemax_range选项适用于filter_validate_int过滤器。

顺便说一句,如果您只是检查一个数字的大小,可能更容易使用某种

if( ( $number > 1000 ) && ( $number < 5000.6 ) )
    // do stuff;
相反,

机制。