当前位置: 首页 > 知识库问答 >
问题:

PHPfilter_var()不返回false或0[重复]的值

皮安顺
2023-03-14

我在PHP函数中遇到了一个问题,因为对真/假输入的验证不正确
我在这里找到了一个解决方案,那就是采用filter\u var以布尔值进行转换,并检查输入是否有效
制作了一个简单的测试页面和php函数进行尝试;该函数在确定“true,1,on”值时是正确的,并返回正确的“1”
提交“0,false”时,函数不会按预期返回“0”;实际上,它什么也不返回(即使dump_var说它是bool)
这是简单的测试代码:

<?php
header("Content-Type: text/html; charset=UTF-8");

$flag = $_GET['flag'];
$filter = filter_var($flag, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
echo "Flag: ".$flag."  ,  Filter: ".$filter;

true和false或1和0输入的结果:
标志:true-筛选器:1
标志:false-筛选器:

我的错在哪里
(使用PHP:7.3.6)

共有1个答案

鲁德佑
2023-03-14

echoing布尔值时,如果值为false,则不会打印任何内容。但它仍然是一个布尔值,您可以使用以下方式显示该值:

var_dump($filter);

if($filter){
  echo 'is true';
}else{
  echo 'is false';
}

echo $filter ? 'is true' : 'is false';

var_dump被推荐用于调试目的,因为它也很好地显示了错误的值和更复杂的结构,如数组:

$array = [1,2,3];
var_dump($array);
 类似资料:
  • 原始正则表达式:< code>[v]\d?\.\d 捕获字符串中的“v{N}.{n}”,其中{N}/{n}只是一个数字。我在代码(java)中尝试,但返回false。 代码: 控制台:

  • 我已经把这个回文函数放在PHP中 问题是:如果提供的字符串是回文,则函数返回1,否则不返回任何内容。 我希望它返回真假。我的错误在哪里?

  • 问题内容: 如果某些列返回FALSE,如何显示不同的值, 例如, COLUMN“ BASIC”返回FALSE,但我需要为用户显示YES或NO。情况为FALSE,请返回NO。 问题答案: 如果是varchar或bit,则处理NULL 或者如果只是一点点 编辑:

  • 我正在创建一个用户可以登录的网站。当他们创建帐户时,我将哈希密码保存在数据库中。我正在尝试使用password_verify()来确认密码匹配,但它返回false。 为了确认它们匹配,我打印出用户输入的哈希版本和存储在数据库中的哈希密码。我知道一个常见的问题是数据库密码字段对于散列密码来说太小,但我尝试将其设置为VARCHAR(256)和TEXT,以确保存储整个散列密码。 我希望password_

  • 无论如何,这个公式是否可以修改为返回,例如:找到单词“哇”,并将该单词返回到单元格中,而不是true/false? 谢谢。

  • 问题内容: 这个问题已经在这里有了答案 : 私人成员的Java反射getFields | 动态访问对象名称值 (2个答案) 7年前关闭。 我正在尝试获取特定类中的字段数。但是我使用的技术无法正常工作,并且始终返回0: 如何获得特定类别的字段计数? 问题答案: 用法 该方法适用于可访问的公共字段- 请参阅文档。