投稿の期待値は 0 または 1 ですが、値がゼロの場合はエラーが返されます
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
エラーメッセージを出力する理由です