0

我不明白为什么filter_var(true, FILTER_VALIDATE_INT)返回 1

它应该返回false因为 true 不是整数

4

3 回答 3

4

因为参数一是混合类型,所以当你给它一个 bool 时,它会将它转换为 int,所以它返回 1,你可以使用 var_dump 进行测试

于 2013-05-29T14:23:20.270 回答
1

尝试使用var_dump...进行测试

var_dump(filter_var(true, FILTER_VALIDATE_INT));
// this returns int(1)

演示

于 2013-05-29T14:28:58.613 回答
0

这可能是因为您没有传递整数。

看看这个:

var_dump(isInt(1)); // bool(true)
var_dump(isInt("1")); // bool(true)
var_dump(isInt("str")); // bool(false)
var_dump(isInt(array(1))); // bool(false)

功能是:

function isInt($variable){
if (filter_var( $variable, FILTER_VALIDATE_INT ) !== false) {
    return true;
}
return false;
}
于 2013-05-29T14:27:19.833 回答