帖子的预期值为 0 或 1,但当值为 0 时返回错误
if(!($data['status'] = filter_input(INPUT_POST,'status',FILTER_VALIDATE_INT)))
{
echo'Error';
}
else
return true;
您的if
语句隐式地将调用结果转换为filter_input()
布尔值,然后测试该结果。在您的情况下,结果0
是隐式转换为FALSE
,因此测试失败。
您需要通过针对以下的身份比较进行显式测试FALSE
:
$data['status'] = filter_input(INPUT_POST,'status',FILTER_VALIDATE_INT);
if ($data['status'] === FALSE) ...
有关更多信息,请参阅PHP 类型比较表。
我认为它正在正确验证并根据返回值filter_input it is returning 0
所以你会得到$data['status'] = 0
然后
!($data['status'] = 0)
这1
就是它打印错误消息的原因