PHP - 使用filter_var和FILTER_VALIDATE_FLOAT进行BUG

Sam*_*ele 1 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);
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢大家......

Samuele

Ark*_*rkh 8

FILTER_VALIDATE_FLOAT不接受范围选项.检查文档.


eyk*_*nal 7

点击这里 ; 看起来你在过滤器上使用了错误的选项.在min_rangemax_range选项的filter_validate_int过滤器.

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

if( ( $number > 1000 ) && ( $number < 5000.6 ) )
    // do stuff;
Run Code Online (Sandbox Code Playgroud)

机制改为.

  • @Samuele:API一致性并不是PHP的强项. (4认同)