該職位的預期值是0或1,而當值爲零則返回錯誤的價值FILTER_VALIDATE_INT返回錯誤0
if(!($data['status'] = filter_input(INPUT_POST,'status',FILTER_VALIDATE_INT)))
{
echo'Error';
}
else
return true;
該職位的預期值是0或1,而當值爲零則返回錯誤的價值FILTER_VALIDATE_INT返回錯誤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 type comparison tables。
我覺得這是每filter_input it is returning 0
返回值正確和驗證所以你會得到$data['status'] = 0
然後
!($data['status'] = 0)
它對1
這就是爲什麼它打印錯誤信息
爲什麼這個問題是用[tag:mysql]和[tag:database]標記的嗎? – eggyal
以上驗證在MySQL數據庫插入之前。 –