【发布时间】:2011-01-28 02:46:26
【问题描述】:
我有一个函数可以检查传递的值并返回 false 或 true,如果为 false,我希望它向数组添加一些内容。我写的代码如下。
if(!check_input($_POST['username'])){
$errors[] = "Username";
}
现在它无论如何都会添加到我的数组中,无论在表单中输入什么。我写的方式是检查check_input() 的返回是否为假的正确方法吗?我已经通过将返回更改为回显来检查函数的逻辑,并且它返回了正确的值,我只是不确定我是否检查错了。
我之前曾尝试将其写为$X=check_input 等,然后是if(check_value == false),但这似乎也没有给我想要的结果。嗯,请快速指点!
编辑:
好的,在查看我的函数后,我认为我发现了问题,我有一个 if 语句,在该 if else 语句中,第一个 if 检查值不为空,第二个 if 检查值不为空超过其最大长度并返回真/假。我将它设置为仅检查最大长度,如果我传入了该值 - 或者它设置为空。但是,总的来说,我没有为主要的 if 语句返回 true。所以我目前的逻辑是,如果该值大于没有,则根据最大长度检查它,然后返回 true。如果我不检查最大长度并且它确实具有价值,它不会返回任何东西。嗯。我认为这是我的问题的原因?
编辑 2:
感谢大家,感谢 Marvin,他建议我重新检查该功能。我已经让它工作了。不是如果某事返回假,如果其他事返回假,我从 else 语句中取出我的返回真,嘿,快!
【问题讨论】:
-
statemnet 是对的,你可以使用这样的函数。你的 check_input 函数应该有问题,我会仔细检查一下
-
如果你想让它工作,
check_input()必须返回一个布尔值。