2011-05-01 71 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