在php中怎样检测字符串是否为数字?两种检测方法奉上:
1、使用is_numeric()函数,可以检测一个字符串是否为数字字符串,语法“is_numeric(字符串)”,返回TRUE则是,反之则不是。
2、将字符串强制转为数字类型,再将数字与原字符串进行比较,判断是否相等,语法“strcmp((float)$str,$str)==0”,返回TRUE则是,反之则不是。
本文适用于windows7系统、PHP8.1版、DELL G3电脑
在php中怎样检测字符串是否为数字?
方法1:使用is_numeric()函数检测
字符串只含数字,则该字符串为数字字符串。
而is_numeric()函数可以检测一个字符串是否为数字字符串。
is_numeric ($var)
● $var:要检测的变量。
如果指定的变量$var是数字和数字字符串则返回 TRUE,否则返回 FALSE。注意浮点型返回 1,即 TRUE。(即可以检查整数和小数)。
<?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"); ?>
方法2:强制类型转换并比较是否相等
● 通过强制转换类型,将字符串转为数字类型
● 将数字与原字符串进行比较,看看是否相等
相等,则原字符串是数字字符串。
<?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"); ?>
说明:
1、强制类型转换
只需在要转换的变量之前加上用括号括起来的目标类型,括号中允许使用的变量类型如下所示:
● (int)、(integer):转换成整型;
● (bool)、(boolean):转换成布尔类型;
● (float)、(double)、(real):转换成浮点类型;
● (string):转换成字符串类型;
● (array):转换成数组类型;
● (object):转换成对象类型。
<?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); ?>
2、strcmp() 函数
strcmp() 函数比较两个字符串。
strcmp(string1,string2)
以上就是关于在php中怎样检测字符串是否为数字的详细解析,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句