php判断数字字符串,PHP之如何判断数字(数字字符串不算)

看到这个问题,一开始想应该很简单吧~而且方法还不止一种.

网上查了下,绝大部分的人是使用is_numeric方法,而且后面还经常会跟着一句话,不要把问题想太复杂,巴拉巴拉的...

自己做了下测试,确实不一定正确,is_numeric在手册上的说法是:检测变量是否为数字或数字字符串,数字字符串.

$a = "000022153.26";echo is_numeric($a) ? "Y" : "N";

结果显示的是Y

显然这不是我想要的答案,根据网上有些人的提示,我想到了另一个方法,既然is_numeric是数字或者数字字符串,那先把字符串给排除了不就行了

if (! is_string ( $a )) { if (is_numeric ( $a )) { echo "Y"; exit (); }}echo "N";

得到的结果是正确的,N 再后来看到一个人提示,使用is_nan,我试了下,最后屏幕打印了N,我开始还挺兴奋,以为对了,直接发文章了,其实是错误的,它还是把$a当float来解析了,is_nan 在手册中的意思是判定某个数字是否为非数值,就是NAN, not a number,当$a为一个string类型的字符串,如”a“时,就会直接报错,故使用is_nan是没法实现判断一个变量是否是字符串

echo is_nan($a) ? "Y" : "N"

而在阅读了手册后,找到了最容易找到的方法

$a="0002133.226";if(is_int($a) || is_float($a)){ echo "Y"; }else{ echo "N";}

与之对应的 gettype($a) 然后跟 ”integer“和”double“进行比较,若匹配了就是数字,不过这个的效率没有上面的高,因为它进行了字符串的比较,它是比较慢的

对于刚之前看文章的人如果有误导,非常抱歉了

不积跬步无以至千里

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值