0

投稿の期待値は 0 または 1 ですが、値がゼロの場合はエラーが返されます

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 に答える