FILTER_VALIDATE_INT
Posté : 07 avr. 2010, 08:50
FILTER_VALIDATE_INT
Il existe déjà les fonctions is_int(), is_numeric() et même mieux dans certains cas la fonction ctype_digit(), donc pourquoi ce filtre existe ?
Et surtout quel est son intérêt ?
Réponse:
Ces options:
* min_range - valeur minimum
* max_range - valeur maximum
Ces Flags:
* FILTER_FLAG_ALLOW_OCTAL - allows octal number values
* FILTER_FLAG_ALLOW_HEX - allows hexadecimal number values
Exemple:
De plus, sans les 2 flags, ni une valeur Octal ni Hexadécimal n'est autorisée.
Tout ceci avec un isset() comme dans l'exemple et ce en une seule ligne.
Difficile de faire mieux
Il existe déjà les fonctions is_int(), is_numeric() et même mieux dans certains cas la fonction ctype_digit(), donc pourquoi ce filtre existe ?
Et surtout quel est son intérêt ?
Réponse:
Ces options:
* min_range - valeur minimum
* max_range - valeur maximum
Ces Flags:
* FILTER_FLAG_ALLOW_OCTAL - allows octal number values
* FILTER_FLAG_ALLOW_HEX - allows hexadecimal number values
Exemple:
<?php
$min = 1;
$max = 10;
$min_max = array("options"=> array("min_range"=>$min, "max_range"=>$max));
$id = (isset($_GET['ID'])) ? filter_var($_GET['ID'], FILTER_VALIDATE_INT, $min_max) : null;
var_dump($id);
// null correspond à false dans un test if.
// Et filter_var retourne false en cas d'échec du test, donc ce test est valide ensuite si besoin:
if ($id) {
echo '$id n\'est pas null, est de type Int, possède une valeur entre 1 et 1O et n\'est pas Hexadécimal ni Octal';
}
?>
Ainsi non seulement on vérifie si la variable est de type int mais en plus si sa valeur est comprise entre 1 et 10.De plus, sans les 2 flags, ni une valeur Octal ni Hexadécimal n'est autorisée.
Tout ceci avec un isset() comme dans l'exemple et ce en une seule ligne.
Difficile de faire mieux