is_numeric() 与 is_float() 与 is_int()
我的理解是...
如果is_numeric($input) === true
然后
is_float($input) === true
或
is_int($input) === true
或
$input === 0
或
$input
是一个数字字符串(这意味着如果它没有用引号括起来,它将满足前 3 个字符串之一)。
这是准确的吗?还有其他区别吗?
我的理解是...
如果is_numeric($input) === true
然后
is_float($input) === true
或
is_int($input) === true
或
$input === 0
或
$input
是一个数字字符串(这意味着如果它没有用引号括起来,它将满足前 3 个字符串之一)。
这是准确的吗?还有其他区别吗?
请参阅 PHP 关于 is_numeric 的文档。它谈论了允许的所有内容,并且它不仅仅是 和 。is_float
is_int
同样重要的是要注意,仅适用于整数类型的事物,这意味着不允许使用字符串表示。在验证表单输入是否为整数时,这是一个常见问题。您应该使用过滤器系列中的东西与过滤器。对于浮点数,请使用 。is_int
filter_var
FILTER_VALIDATE_INT
FILTER_VALIDATE_FLOAT
此外,如果您尝试检查整数的原因是将参数验证为int,那么在PHP 7中,您可以这样做:
function foo(int $i) {
// $i is guaranteed to be an int (is_int) will be true
}
PHP 7 有两种不同的模式用于转换为 int;这个答案可以解释得更多一些。
请注意,如果要验证表单元素的内容,这可能不是您想要的。为此,请使用解决方案。filter_var