我不得不验证一个变量,该变量应该是布尔值为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