Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么filter\u var(true,filter\u VALIDATE\u INT)返回1_Php - Fatal编程技术网

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,您的答案是不正确的。