is_int 对于像“-10”这样的负值返回 false?
php 的 is_int 函数是否对负数返回 false ,因为 php 中的整数是无符号的,还是我缺少其他行为?我正在尝试检查某些内容是否是整数,并且如果它做了不同的事情,我不想依赖 is_int (测试的第一部分)的行为。
澄清:我知道 is_int
对于负数返回 false
,但我要问为什么,因为这种行为:var_dump(intval ("-10"))
打印 int(-10)
,var_dump(intval("10"))
打印 int(1)
,所以都是负数正值被视为整数,但 is_int("-10")
返回 false。
编辑:好的,对不起大家,我对 is_int 和整数的行为感到相当困惑。当我需要的是字符串上的 is_numeric
或整数本身的 is_int
时,我正在考虑它作用于具有“-10”等内容的字符串。感谢您的帮助。
Does php's is_int function return false
for negative numbers because integers in php are unsigned, or is there other behaviour that I'm missing? I'm trying to check if something is a whole number, and I don't want to rely on that behaviour of is_int (for the first part of the test) if it's doing something different.
Clarification: I know that is_int
returns false
for negative numbers, but I'm asking why because of this behaviour: var_dump(intval("-10"))
prints int(-10)
, and var_dump(intval("10"))
prints int(1)
, so both negative and positive values are considered integers, yet is_int("-10")
returns false.
EDIT: Ok, sorry everyone, I got quite a bit confused about the behaviour of is_int and integers in general. I was thinking of it acting on a string with contents like "-10" when what I need is is_numeric
on a string, or is_int
on an integer itself. Thanks for the help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
它不是:
可能,它不是一个数字:
如果是这样,请尝试 is_numeric() ,它是为字符串设计的。
It doesn't:
Probably, it isn't a number to begin with:
If so, try out is_numeric(), which is designed for strings.
为什么不亲自测试一下呢?
产生:
Why not test it for yourself?
produces:
使用
不
use
not
我知道这个问题很老了,但是如果有人需要检查字符串是否代表有效的 int,或者例如浮点数,这里有一个简单的脚本,可以使验证
充当检查的作用。首先,简单的 is_int() 函数,然后检查 int 转换是否等于其 float 值是否为非零值,最后检查字符串是否字面意思是“0”。
I know this question is old, bu if someone need to check if a string represents an valid int, or, for example, a float, here is a simple script that will make that validation
It works as a check. Forst, the simple is_int() function, then, it checks, for non zero values if the int conversion is equal to its float one, and finally, if the string is literally "0".