2010-05-28 50 views
1

我認爲在這個filter_var錯誤或也許我做錯了什麼: 試試這個:PHP - BUG與filter_var和FILTER_VALIDATE_FLOAT

 $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,這是默認值,以防它不驗證它... PERFECT ...

而是用FILTER_VALIDATE_FLOAT它驗證它...它返回5698.2 !!!我做錯了什麼?

謝謝大家......

Samuele

回答

7

檢查here;它看起來像你在過濾器上使用了錯誤的選項。 min_rangemax_range選項適用於filter_validate_int過濾器。

順便說一句,如果你只是檢查數字的大小,它可能是更容易使用某種

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

機制來代替。

+1

哦,非常感謝......我認爲你是對的......但我認爲它使用了相同的選項......所以我不能使用函數來驗證float的範圍:FILTER_VALIDATE_FLOAT? 它看起來非常奇怪的是,與FILTER_VALIDATE_INT你可以做到這一點,並與FILTER_VALIDATE_FLOAT你不能做到這一點... 無論如何,我會通過我做...再次 謝謝... :) – Samuele 2010-05-28 15:24:39

+4

@Samuele: API一致性不完全是PHP的強項。 – webbiedave 2010-05-28 15:32:22

+0

我這麼認爲... :) – Samuele 2010-05-28 15:35:20

8

FILTER_VALIDATE_FLOAT不接受範圍選項。檢查doc