加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何检查字符串是否由PHP中的整数组成

发布时间:2020-12-13 21:47:16 所属栏目:PHP教程 来源:网络整理
导读:我正在编写 PHP代码来验证用户输入的一些数据,其中一个是整数,我使用$_REQUEST [“age”]来获取它,当我检查这个值是否为gettype整数时($_ REQUEST [ “age”] ==“整数”和is_int($_ REQUEST [“age”])都给我假,但是当我使用is_numeric($_ REQUEST [“age”
我正在编写 PHP代码来验证用户输入的一些数据,其中一个是整数,我使用$_REQUEST [“age”]来获取它,当我检查这个值是否为gettype整数时($_ REQUEST [ “age”] ==“整数”和is_int($_ REQUEST [“age”])都给我假,但是当我使用is_numeric($_ REQUEST [“age”])时,我给的是真的.我想检查一下参数的值是否为整数,我是正确使用前2个函数还是我遗漏了什么?

Thakns

注意:我试图输出gettype($_ REQUEST [“age”])它给我字符串

解决方法

精简版:

使用ctype_digit($_ REQUEST [‘age’])

长版:

正如您在使用gettype时发现的那样,您的问题是$_REQUEST返回一个字符串.即使该字符串在语义上是整数,如16,它仍然是字符串类型而不是整数类型变量.你从两个测试得到不同的结果,因为他们测试不同的东西:

> is_numeric根据PHP docs测试字符串是否包含“可选符号,任意数量的数字,可选的小数部分和可选的指数部分”.在您的情况下,字符串仅包含数字,因此测试返回True.
> is_int测试变量的类型是否为整数 – 它不是,因为它是由$_REQUEST返回的.

这就是为什么is_numeric返回True而is_int返回False:字符串只包含数字(因此“是数字”)但技术上仍然是字符串类型,而不是整数类型(因此“不是int”).当然,is_numeric不足以进行整数测试,因为如果字符串有小数或使用科学记数法,它将返回True,即数字但不是整数.

要测试$_REQUEST是否为整数,无论??技术类型如何,您都可以测试字符串中的所有字符是否为数字(因此字符串整数是整数).为此您可以使用ctype_digit:

ctype_digit($_REQUEST['age'])

这将返回True为16但不是16.5或16e0 – 从数字非整数中删除整数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读