gpt4 book ai didi

php - FILTER_VALIDATE_BOOLEAN 的输入值为 false

转载 作者:可可西里 更新时间:2023-10-31 23:56:11 25 4
gpt4 key购买 nike

我希望输入只接受“真”或“假”,所以我尝试使用 FILTER_VALIDATE_BOOLEAN 来做到这一点,

if (!filter_var('false', FILTER_VALIDATE_BOOLEAN)) 
{
$error = true;
echo 'error';
}

它回显了错误消息,但它不应该。

我怎样才能让它正确?

最佳答案

看看手册http://www.php.net/manual/en/filter.filters.validate.php

您的语法/用法是正确的。 filter_var('false', FILTER_VALIDATE_BOOLEAN)但是不验证模式,它将输入字符串转换为相应类型的值。

为了明确:

var_dump(filter_var('false', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));

返回 boolean 值false
.

var_dump(filter_var('true', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));

返回 boolean 值true
.

var_dump(filter_var('wrong', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));

返回NULL
这就是为什么我添加了第二个选项。输入字符串既不分类为 true 也不分类为 false

所以你实际上必须用 === NULL 检查你的情况。这会给你你可能想要的结果:

if (filter_var('false', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL) 
{
echo "Input did not evaluate to boolean 'false' nor 'true'"

关于php - FILTER_VALIDATE_BOOLEAN 的输入值为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com