我无法理解为什么filter_var(true, FILTER_VALIDATE_INT)
会返回1
它应该返回 false ,因为true不是整数
答案 0 :(得分:4)
原因参数one的类型是混合的,所以当你给bool它把它转换为int所以它返回1,你可以使用var_dump测试
答案 1 :(得分:1)
尝试使用var_dump
...
var_dump(filter_var(true, FILTER_VALIDATE_INT));
// this returns int(1)
<强> DEMO 强>
答案 2 :(得分: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;
}