使用filter_var的PHP验证布尔值

RS7*_*RS7 8 php validation boolean filter-var

filter_var用来验证布尔值,但我没想到它不能识别FALSE.为什么会这样?

filter_var(FALSE, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)

回报

null

dka*_*ins 6

filter_var从PHP 5.2开始是新的.您遇到了一个已知错误:https: //bugs.php.net/bug.php? id = 49510随意投票或评论该错误.

你正试图做这样的事情:

$v = filter_var($v, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)
Run Code Online (Sandbox Code Playgroud)

有许多廉价的解决方法,如下所示:

$v = $v===FALSE ? FALSE : filter_var($v, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)
Run Code Online (Sandbox Code Playgroud)