我是一名PHP noob,正在完成这些教程,我发现了嵌套的If Else的一个问题,我不明白。我有一个外在的if有一系列内在的if。并且,我有一个我想要的外部if。我的原始代码从未执行过else,如果外部if为false,则应该发生。原始代码是:
if (!($result["name"] & $result["age"] & $result["email"]))
{
if (!$result["name"])
{
echo("Name must be supplied.<br>");
}
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br>");
}
if (!$result["email"])
{
echo("E-Mail is not valid.<br>");
}
}
else
{
echo("User input is valid.<br/>");
}
正如我所说,其他人从未被执行过。但是,我在括号内移动了其他内容并且有效。工作代码是:
if (!($result["name"] & $result["age"] & $result["email"]))
{
if (!$result["name"])
{
echo("Name must be supplied.<br>");
}
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br>");
}
if (!$result["email"])
{
echo("E-Mail is not valid.<br>");
}
else
{
echo("User input is valid.<br/>");
}
}
这对我来说似乎是错的。可能只是一些noob错误,但我无法弄清楚。谢谢你的帮助... RG
答案 0 :(得分:1)
替换它:
if (!($result["name"] & $result["age"] & $result["email"]))
用这个
if (!($result["name"] && $result["age"] && $result["email"]))
它的两个&amp;标志不仅仅是一个。
答案 1 :(得分:1)
使用AND
比较运算符或&&
比较运算符代替&
按位运算符。
要快速查看PHP运算符,请转到here
答案 2 :(得分:0)
在你的第一个if。如果你想执行它
如果您的姓名,年龄和电子邮件为空或未设置
您需要至少将!
放在每个$result[]
上并将&
更改为&&
if (!($result["name"] && !$result["age"] && !$result["email"]))
尝试使用此代码..