对于像"-10"这样的负值,is_int返回false?

Ric*_*ano 4 php integer

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" 的字符串.谢谢您的帮助.

Álv*_*lez 6

它没有:

var_dump( is_int(-10) ); // bool(true)
Run Code Online (Sandbox Code Playgroud)

也许,开头不是一个数字:

var_dump( is_int('-10') ); // bool(false)
Run Code Online (Sandbox Code Playgroud)

如果是这样,请尝试is_numeric(),它是为字符串设计的.