我不得不驗證一個變量,該變量應該是布爾值爲1或0.我嘗試使用filter_var(),該函數的問題是如果它獲得0作爲輸入它將返回false,不是0被認爲是一個布爾?如果是,那麼爲什麼函數返回false?爲什麼filter_var()不接受0作爲布爾值?
以下狀況返回真
filter_var(1, FILTER_VALIDATE_BOOLEAN);
,而如果我使用0作爲輸入,它會返回false
filter_var(0, FILTER_VALIDATE_BOOLEAN);
我不得不驗證一個變量,該變量應該是布爾值爲1或0.我嘗試使用filter_var(),該函數的問題是如果它獲得0作爲輸入它將返回false,不是0被認爲是一個布爾?如果是,那麼爲什麼函數返回false?爲什麼filter_var()不接受0作爲布爾值?
以下狀況返回真
filter_var(1, FILTER_VALIDATE_BOOLEAN);
,而如果我使用0作爲輸入,它會返回false
filter_var(0, FILTER_VALIDATE_BOOLEAN);
根據http://www.php.net/manual/en/filter.filters.validate.php:
FILTER_VALIDATE_BOOLEAN
返回
TRUE
爲"1"
,"true"
,"on"
和"yes"
。否則返回FALSE
。
如果你想爲一個值FALSE
加以區分,並FALSE
表示失敗,那麼你就需要使用FILTER_NULL_ON_FAILURE
標誌。
因爲零是布爾假?
看來你真的不明白布爾是什麼,或者你沒有閱讀說明函數的手冊。我建議前往http://php.net/manual/en/filter.filters.validate.php並閱讀該函數的實際內容。 – 2011-05-01 15:37:28
FILTER_NULL_ON_FAILURE +1 – 2011-05-01 15:35:44