Dans la programmation PHP, il est souvent nécessaire de déterminer si une chaîne est un nombre. Cette exigence est particulièrement courante dans des scénarios tels que la vérification des données, le traitement des entrées utilisateur, la vérification du formulaire, etc. PHP fournit une fonction intégrée très pratique IS_NUMERIC , qui peut rapidement déterminer si une variable est une chaîne numérique.
Cet article introduira en détail comment utiliser la fonction IS_NUMERIER et certains exemples d'applications pratiques pour vous aider à mieux comprendre et appliquer cette fonction.
is_numeric est une fonction de PHP qui détecte si une variable est une chaîne numérique ou numérique. Il renvoie une valeur booléenne True ou False .
Si la variable est un entier, un numéro de point flottant ou une chaîne composée de nombres (y compris des chaînes avec des points décimaux, des signes positifs et une notation scientifique), la fonction renvoie vrai .
Sinon, False est retourné.
Définition de la fonction:
bool is_numeric ( mixed $var )
Le paramètre $ var est la variable que vous souhaitez détecter.
Ce qui suit est quelques exemples de code pour démontrer l'utilisation de IS_NUMERIC :
<?php
$values = [
"123",
"12.3",
"-123",
"1e10",
"abc",
"123abc",
"",
" 123 ",
null,
123,
12.3
];
foreach ($values as $value) {
if (is_numeric($value)) {
echo "'$value' est un nombre ou une chaîne de nombres\n";
} else {
echo "'$value' Pas une chaîne numérique\n";
}
}
?>
Résultat de sortie:
'123' est un nombre ou une chaîne de nombres
'12.3' est un nombre ou une chaîne de nombres
'-123' est un nombre ou une chaîne de nombres
'1e10' est un nombre ou une chaîne de nombres
'abc' Pas une chaîne numérique
'123abc' Pas une chaîne numérique
'' Pas une chaîne numérique
' 123 ' Pas une chaîne numérique
'' Pas une chaîne numérique
'123' est un nombre ou une chaîne de nombres
'12.3' est un nombre ou une chaîne de nombres
Comme on peut le voir à partir des résultats, IS_NUMERIC peut reconnaître les entiers, les nombres de points flottants, les nombres négatifs et les chaînes numériques représentées par la notation scientifique, mais ne supportent pas les chaînes contenant des espaces ou des lettres.
<?php
$user_input = "45.67";
if (is_numeric($user_input)) {
echo "Le saisie est un numéro juridique";
} else {
echo "L'entrée n'est pas un nombre,Veuillez rentrer";
}
?>
En supposant que les paramètres sont obtenus à partir de l'URL, il est nécessaire de déterminer si les paramètres sont des nombres pour empêcher l'injection illégale:
<?php
$id = $_GET['id'] ?? '';
if (is_numeric($id)) {
echo "EfficaceID: " . intval($id);
} else {
echo "InvalideIDparamètre";
}
?>
Notez que bien que la chaîne numérique soit déterminée par IS_NUMERIC , si un entier est requis, il peut être traité davantage avec une conversion INTVAL ou de type.
IS_NUMERIC reconnaîtra les chaînes avec des signes positifs et négatifs, des points décimaux et une notation scientifique comme des nombres, tels que -3.14 et + 1e3 , les deux renvoient vrai .
Des cordes vides, des cordes d'espace pur et des cordes mixtes alphanumériques retourneront toutes fausses .
Si vous devez savoir si la variable est un entier pur, vous pouvez utiliser CTYPE_DIGIT , mais il ne prend en charge que des chaînes numériques non signées.
Si vous devez juger des numéros de points flottants ou des entiers, vous pouvez combiner Filter_Var et des expressions régulières pour obtenir une détection plus stricte.
IS_NUMERIC est une fonction simple et efficace dans PHP pour déterminer si une variable est une chaîne numérique ou numérique. Il convient pour vérifier rapidement les types d'entrée ou de variables utilisateur et est très pratique dans de nombreux scénarios. Comprendre son comportement et ses situations limites peut aider à écrire un code plus robuste.
Si vous effectuez une vérification numérique, il est recommandé d'utiliser IS_NUMERIC en premier et d'utiliser d'autres fonctions telles que IntVal et FloatVal pour traiter davantage les données.