2011-05-01 73 views
1

我不得不驗證一個變量,該變量應該是布爾值爲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); 

回答

4

根據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標誌。

+1

FILTER_NULL_ON_FAILURE +1 – 2011-05-01 15:35:44

0

因爲零是布爾假?

+3

看來你真的不明白布爾是什麼,或者你沒有閱讀說明函數的手冊。我建議前往http://php.net/manual/en/filter.filters.validate.php並閱讀該函數的實際內容。 – 2011-05-01 15:37:28