为什么filter_var(true,FILTER_VALIDATE_INT)返回1

时间:2013-05-29 14:18:21

标签: php

我无法理解为什么filter_var(true, FILTER_VALIDATE_INT)会返回1

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

3 个答案:

答案 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;
}