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