Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回false的过滤器变量布尔值_Php_Boolean_Filter Var - Fatal编程技术网

Php 返回false的过滤器变量布尔值

Php 返回false的过滤器变量布尔值,php,boolean,filter-var,Php,Boolean,Filter Var,这很奇怪 var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN)); var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN)); bool(true) bool(false) 我在这里错过了什么?它们肯定都是真的吗?如果不是,如何验证假布尔值 编辑:澄清。 我需要验证一个假布尔值。以确保它不是字符串、int、float或其他任何形式。 e、 g 也许我问错了我的问题,或者我已经把它进化得太多了,我应

这很奇怪

var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN));

bool(true)
bool(false)
我在这里错过了什么?它们肯定都是真的吗?如果不是,如何验证假布尔值

编辑:澄清。 我需要验证一个假布尔值。以确保它不是字符串、int、float或其他任何形式。 e、 g

也许我问错了我的问题,或者我已经把它进化得太多了,我应该问另一个问题

我选择的解决方案是:

$result = filter_var($bool, FILTER_VALIDATE_BOOLEAN) && ($bool===true||$bool===false);
从手册中:-

如果设置了FILTER\u NULL\u ON\u FAILURE,则仅对“0”、“FALSE”、“off”、“no”和“”返回FALSE,对所有非布尔值返回NULL

设置此选项,如果返回
null
,则没有bool(或boolish)值

例如:-

var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(2, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));


不过,这可能更合适。

您的问题是什么?“表示
过滤器验证\u布尔值”
“为“1”、“真”、“开”和“是”返回真值。否则返回假值。”我的问题是:如何验证假布尔值?在出现故障时设置
过滤器为空值
?当有疑问时,您可以返回到严格的比较(
return$x===true | |$x===false
)NULL也在假布尔值上返回。那么,如何验证变量是否为假布尔值呢?不,如果设置FILTER\u null\u ON\u FAILURE,则仅对非布尔值(ish)返回null。例1将返回null,但0将返回false。太棒了!这就是我所期望的FILTER\u VALIDATE\u BOOLEAN的输出。
var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(2, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));