如何检查字符串是否由PHP中的整数组成
我正在编写
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_numeric返回True而is_int返回False:字符串只包含数字(因此“是数字”)但技术上仍然是字符串类型,而不是整数类型(因此“不是int”).当然,is_numeric不足以进行整数测试,因为如果字符串有小数或使用科学记数法,它将返回True,即数字但不是整数. 要测试$_REQUEST是否为整数,无论??技术类型如何,您都可以测试字符串中的所有字符是否为数字(因此字符串整数是整数).为此您可以使用ctype_digit: ctype_digit($_REQUEST['age']) 这将返回True为16但不是16.5或16e0 – 从数字非整数中删除整数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |