我必须验证一个应该具有布尔值1或0的变量。我尝试使用filter_var(),函数的问题是如果输入0作为输入它将返回false,不是0被认为是布尔值?如果是,那么为什么函数返回false?
以下条件返回true
filter_var(1, FILTER_VALIDATE_BOOLEAN);
如果我使用0作为输入,它将返回false
filter_var(0, FILTER_VALIDATE_BOOLEAN);
答案 0 :(得分: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 :(得分:0)
因为零是布尔值假?