1 votes

PHP - BUG avec filter_var et FILTER_VALIDATE_FLOAT

Je pense qu'il y a un bug dans cette filter_var ou peut-être que je fais quelque chose de mal : Essayez ceci :

        $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);

Il est censé ne pas le valider... En fait, la valeur 5698 est supérieure à 5000.6 !!!!. Mais avec FILTER_VALIDATE_INT ça marche très bien ! !! Il retourne 3 qui est la valeur par défaut au cas où il ne le validerait pas... PARFAIT...

Au lieu de cela, avec FILTER_VALIDATE_FLOAT il le valide... Il renvoie 5698.2 ! !! Je fais quelque chose de mal ? ??

Merci à tous...

Samuele

9voto

Arkh Points 5804

FILTER_VALIDATE_FLOAT n'accepte pas d'option de plage. Vérifiez le doc .

8voto

eykanal Points 8133

Vérifiez aquí il semble que vous utilisiez les mauvaises options avec le filtre. Le site min_range y max_range Les options sont pour le filter_validate_int filtre.

D'ailleurs, si vous vérifiez simplement la taille d'un nombre, il est probablement plus facile d'utiliser une sorte de

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

à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X