Maison >développement back-end >Problème PHP >Comment détecter si une chaîne est un nombre en php
Deux méthodes de détection : 1. Utilisez la fonction is_numeric() pour détecter si une chaîne est une chaîne numérique. La syntaxe est "is_numeric (string)". Si TRUE est renvoyé, c'est le cas, et vice versa. 2. Convertissez la chaîne en type numérique, puis comparez le nombre avec la chaîne d'origine pour déterminer s'ils sont égaux. La syntaxe est "strcmp((float)$str,$str)==0". , vice versa non.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3
Méthode 1 : Utiliser la fonction is_numeric() pour détecter
La chaîne ne contient que des chiffres, puis la chaîne est une chaîne de caractères numériques.
La fonction is_numeric() peut détecter si une chaîne est une chaîne numérique.
is_numeric ($var)
$var : la variable à détecter.
Renvoie VRAI si la variable spécifiée $var est un nombre ou une chaîne numérique, sinon renvoie FAUX. Notez que float renvoie 1, ce qui est VRAI. (c'est-à-dire qu'il peut vérifier à la fois les nombres entiers et les nombres décimaux).
<?php header("Content-type:text/html;charset=utf-8"); function f($str){ if (is_numeric($str)){ echo "$str 是数字字符串<br><br>"; } else{ echo "$str 不是数字字符串<br><br>" ; } } f("a678"); f("678"); f("3.14"); ?>
Méthode 2 : forcer la conversion de type et comparer l'égalité
Convertir la chaîne en un type numérique en forçant le type
Comparez le nombre avec la chaîne d'origine pour voir si si
est égal, la chaîne d'origine est une chaîne numérique.
<?php header("Content-type:text/html;charset=utf-8"); function f($str){ $num=(float)$str; if (strcmp($num,$str)==0){ echo "$str 是数字字符串<br><br>"; } else{ echo "$str 不是数字字符串<br><br>" ; } } f("3.14"); f("a678"); f("678"); f("23d5"); ?>
Instructions :
1. Conversion de type forcée
Ajoutez simplement le type cible entre parenthèses avant la variable à convertir. Les types de variables autorisés entre parenthèses sont les suivants :
(int), (integer) : Convertir en type entier ;
(bool), (boolean) : Convertir en type booléen ; type à virgule flottante ;
(string) : Convertir en type chaîne ;
(array) : Convertir en type tableau
(object) : Convertir en type d'objet.
<?php header('content-type:text/html;charset=utf-8'); $str = '123.456abc'; echo '原变量 $str 的类型为:'.gettype($str)."<br>"; $int = (int)$str; echo '变量 $int 的类型为:' . gettype($int) . '<br>'; $float = (float)$str; echo '变量 $float 的类型为:' . gettype($float) . '<br>'; $bool = (bool)$str; echo '变量 $bool 的类型为:' . gettype($bool). '<br>'; $arr = (array)$str; echo '变量 $arr 的类型为:' . gettype($arr); ?>
La fonction strcmp() compare deux chaînes.
strcmp(string1,string2)Valeur de retour :
0 - si les deux chaînes sont égales |
| Apprentissage recommandé : "
---|
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!