Php 为什么filter\u var(true,filter\u VALIDATE\u INT)返回1
我不明白为什么Php 为什么filter\u var(true,filter\u VALIDATE\u INT)返回1,php,Php,我不明白为什么filter\u var(true,filter\u VALIDATE\u INT)返回1 它应该返回false,因为true不是整数因为参数1的类型是mixed,所以当你给出一个布尔值时,它会将其转换为int,所以它会返回1,你可以使用var_dump进行测试因为参数1的类型是mixed,所以当你给出布尔值时,它会将其转换为int,所以它会返回1,您可以使用var_dump进行测试,这可能是因为您没有传递整数 看看这个: var_dump(isInt(1)); // bool(t
filter\u var(true,filter\u VALIDATE\u INT)
返回1
它应该返回false,因为true不是整数因为参数1的类型是mixed,所以当你给出一个布尔值时,它会将其转换为int,所以它会返回1,你可以使用var_dump进行测试因为参数1的类型是mixed,所以当你给出布尔值时,它会将其转换为int,所以它会返回1,您可以使用var_dump进行测试,这可能是因为您没有传递整数 看看这个:
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;
}
这可能是因为您没有传递整数 看看这个:
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;
}
尝试使用
var\u dump
进行测试
var_dump(filter_var(true, FILTER_VALIDATE_INT));
// this returns int(1)
尝试使用
var\u dump
进行测试
var_dump(filter_var(true, FILTER_VALIDATE_INT));
// this returns int(1)
您希望我们如何回答这个问题而不知道您作为
$variable
传递的是什么?为什么不为此使用内置函数is\u int
?filter\u var(true,filter\u VALIDATE\u int)
返回1
,而不是true
。在不知道您作为$variable
传递什么的情况下,您希望我们如何回答这个问题?为什么不为此使用内置函数is\u int
?filter\u var(true,filter\u VALIDATE\u int)
返回1
,而不是true
。根据您的假设,filter\u var(false,filter\u VALIDATE\u INT)
应该返回0
,但它返回false
。您的答案至少在PHP7.4中是不正确的。基于您的假设,filter\u var(false,filter\u VALIDATE\u INT)
应该返回0
,但它返回false
。至少对于PHP7.4,您的答案是不正确的。