我正在尝试验证表单。表单有一个简单的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";
}
}
谢谢你
答案 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。
就语法错误而言,其他答案已经为你解决了。