【发布时间】:2014-11-13 11:18:14
【问题描述】:
这很奇怪
var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN));
bool(true)
bool(false)
我在这里错过了什么?当然,它们都应该是真的吗?如果不是,我该如何验证假布尔值?
编辑:澄清。 我需要验证一个错误的布尔值。确保它不是字符串、int、float 或其他任何东西。 例如
$var = false; //true
$var = true; //true
$var = 'foo'; //false
$var = 1; //false
也许我问错了我的问题,或者我对它的改进太多了,我应该再问一个问题。
我的解决方案是:
$result = filter_var($bool, FILTER_VALIDATE_BOOLEAN) && ($bool===true||$bool===false);
【问题讨论】:
-
您的问题到底是什么? manual 表示
FILTER_VALIDATE_BOOLEAN“对于“1”、“true”、“on”和“yes”返回 TRUE。否则返回 FALSE。” -
我的问题是:如何验证假布尔值?
-
设置
FILTER_NULL_ON_FAILURE?如有疑问,您可以返回严格比较 (return $x === true || $x === false)
标签: php boolean filter-var