【发布时间】:2020-05-14 20:23:15
【问题描述】:
由于对真/假输入的验证不正确,我在 PHP 函数中遇到问题。
我在这里找到了一个解决方案,即采用 filter_var 转换为布尔值并检查输入是否有效。
做了一个简单的测试页面和php函数试试;该函数在确定“true,1,on”值时是正确的,并且确实返回了正确的“1”。
提交 '0, false' 时,函数不会按预期返回 '0';实际上它什么也不返回(即使 dump_var 说它是布尔值)。
这是简单的测试代码:
<?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;
真假或 1 和 0 输入的结果:
标志:true - 过滤器:1
标志:false - 过滤器:
我的错误在哪里?
(使用 PHP:7.3.6)
【问题讨论】: