验证具有两个条件的if语句

时间:2014-01-03 23:47:47

标签: php validation

我正在尝试验证表单。表单有一个简单的if语句。这有什么问题吗?浏览器说:Parse error: syntax error, unexpected '&&'。要检查的变量都是单独的字段。它们必须都是数字和数字。不是空的。

if (isset($_POST["submit"])) {  
if(empty($numberwelds)) && (empty($conwelds)) {
echo " One or both of the numbers are empty ";
} else if(!is_numeric($numberwelds)) && (!is_numeric($conwelds)) {
echo "Data entered was not numeric";
} else {
echo "it passed";
}
}  

我仍然得到'其中一个或两个数字都是空的',即使它们都是数字。我的新代码:

if (isset($_POST["submit"])) {  
if(empty($numberwelds) || empty($conwelds)) {
echo " One or both of the numbers are empty ";
} else if(!is_numeric($numberwelds) || !is_numeric($conwelds)) {
echo "one or both of them is not a number";
} else {
echo "it passed";
}
} 

谢谢你

2 个答案:

答案 0 :(得分:4)

你的问题就在你所拥有的位置;

if(empty($numberwelds)) && (empty($conwelds)) {... 

} else if(!is_numeric($numberwelds)) && (!is_numeric($conwelds)) {

你基本上是在尝试创建表单的if语句;

if(stuff in here) && (stuff in here){..

这是一个语法错误,因为如果语句需要紧跟一个括号内的控制流,并且在您的示例中,您有一个if语句,后跟&&amp ;. 您需要做的就是添加一些括号以生成正确的if语句,例如;

使用

if((stuff in here) && (stuff in here)){...

而不是

 if(stuff in here) && (stuff in here){..

答案 1 :(得分:1)

如果您希望错误输出 One or both of the numbers are empty 准确无误,则必须使用||而不是&&

即使其中一个选项为空,发生的情况也是如此,if语句将被忽略。并且&&表示两个语句必须为true。 ||表示 - 或两者必须为true。

就语法错误而言,其他答案已经为你解决了。