1

我认为这个 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 !!!我做错了什么???

谢谢大家...

塞缪尔

4

2 回答 2

8

在这里检查;看起来您在过滤器中使用了错误的选项。和选项用于过滤器min_rangemax_rangefilter_validate_int

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

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

取而代之的机制。

于 2010-05-28T15:19:22.447 回答
8

Before 7.4, FILTER_VALIDATE_FLOAT did not accept a range option. Check the doc.

于 2010-05-28T15:21:12.393 回答