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