Maison >développement back-end >Problème PHP >Comment détecter si une chaîne est un nombre en php

Comment détecter si une chaîne est un nombre en php

青灯夜游
青灯夜游original
2022-08-29 19:21:535456parcourir

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.

Comment détecter si une chaîne est un nombre en php

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");

?>

Comment détecter si une chaîne est un nombre en php

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");
?>

Comment détecter si une chaîne est un nombre en php

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(&#39;content-type:text/html;charset=utf-8&#39;);   
    $str = &#39;123.456abc&#39;;
    echo &#39;原变量 $str 的类型为:&#39;.gettype($str)."<br>";
    $int = (int)$str;
    echo &#39;变量 $int 的类型为:&#39; . gettype($int) . &#39;<br>&#39;;
    $float = (float)$str;
    echo &#39;变量 $float 的类型为:&#39; . gettype($float) . &#39;<br>&#39;;
    $bool = (bool)$str;
    echo &#39;变量 $bool 的类型为:&#39; . gettype($bool). &#39;<br>&#39;;
    $arr = (array)$str;
    echo &#39;变量 $arr 的类型为:&#39; . gettype($arr);
    ?>

2. Fonction strcmp()

Comment détecter si une chaîne est un nombre en phpLa fonction strcmp() compare deux chaînes.

strcmp(string1,string2)

Valeur de retour : La fonction renvoie : Apprentissage recommandé : "Tutoriel vidéo PHP"
0 - si les deux chaînes sont égales
  • >0 - si chaîne1 est supérieure à chaîne2
  • 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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn