Vérification des types de données entiers en PHP
Lorsque vous traitez des données numériques en PHP, déterminer si une variable représente un entier peut être crucial. Pour résoudre ce problème, la fonction is_int() est couramment utilisée. Cependant, son comportement peut parfois être inattendu, prêtant à confusion.
Pour remédier à cela, nous introduisons des méthodes alternatives de validation des types de données entiers :
FILTER_VALIDATE_INT
En utilisant cette méthode, vous pouvez évaluer efficacement si une variable représente un entier :
if (filter_var($variable, FILTER_VALIDATE_INT) === false) {
// Variable is not an integer
}
Cette approche gère avec précision les entiers, les nombres à virgule flottante et même les chaînes.
COMPARAISON DE CASTING
En convertissant la variable en nombre entier et en le comparant à sa forme originale sous forme de chaîne, vous pouvez déterminer sa nature entière :
if (strval($variable) !== strval(intval($variable))) {
// Variable is not an integer
}
Cette méthode garantit que seuls les entiers vrais sont considérés comme des entiers.
CTYPE_DIGIT
Pour limiter votre validation aux entiers non négatifs (0 ou plus ), vous pouvez utiliser la fonction ctype_digit() :
if (!ctype_digit(strval($variable))) {
// Variable is not an integer
}
Cette approche se concentre sur les entiers positifs et zéro, fournissant une validation plus spécifique.
EXPRESSION RÉGULIÈRE
L'emploi d'expressions régulières offre une autre option de validation entiers :
if (!preg_match('/^-?\d $/', $variable)) {
// Variable is not an integer
}
Cette méthode valide les entiers, qu'ils soient positifs ou négatifs, et exclut les nombres ou les chaînes à virgule flottante.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3