0

帖子的预期值为 0 或 1,但当值为 0 时返回错误

if(!($data['status'] = filter_input(INPUT_POST,'status',FILTER_VALIDATE_INT)))
{
  echo'Error';
}
else 
return true;
4

2 回答 2

5

您的if语句隐式地将调用结果转换为filter_input()布尔值,然后测试该结果。在您的情况下,结果0是隐式转换为FALSE,因此测试失败。

您需要通过针对以下的身份比较进行显式测试FALSE

$data['status'] = filter_input(INPUT_POST,'status',FILTER_VALIDATE_INT);
if ($data['status'] === FALSE) ...

有关更多信息,请参阅PHP 类型比较表

于 2012-10-14T10:51:43.417 回答
1

我认为它正在正确验证并根据返回值filter_input it is returning 0

所以你会得到$data['status'] = 0

然后

!($data['status'] = 0)1就是它打印错误消息的原因

于 2012-10-14T10:52:08.983 回答