PHP Valider une valeur est un entier


Exemple

Lors du filtrage d'une valeur qui doit être un entier, filter_var() renverra les données filtrées, en l'occurrence le nombre entier ou false si la valeur n'est pas un entier. Les flotteurs ne sont pas des entiers:

var_dump(filter_var('10', FILTER_VALIDATE_INT));
var_dump(filter_var('a10', FILTER_VALIDATE_INT));
var_dump(filter_var('10a', FILTER_VALIDATE_INT));
var_dump(filter_var(' ', FILTER_VALIDATE_INT));
var_dump(filter_var('10.00', FILTER_VALIDATE_INT));
var_dump(filter_var('10,000', FILTER_VALIDATE_INT));
var_dump(filter_var('-5', FILTER_VALIDATE_INT));
var_dump(filter_var('+7', FILTER_VALIDATE_INT));

Résultats:

int(10)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
int(-5)
int(7)

Si vous ne prévoyez que des chiffres, vous pouvez utiliser une expression régulière:

if(is_string($_GET['entry']) && preg_match('#^[0-9]+$#', $_GET['entry']))
    // this is a digit (positive) integer
else
    // entry is incorrect

Si vous convertissez cette valeur en un entier, vous n'avez pas à faire cette vérification et vous pouvez donc utiliser filter_var .