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