这很奇怪
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);