在嵌套的If中放置Else

时间:2012-11-22 01:37:52

标签: php

我是一名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

3 个答案:

答案 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"]))

尝试使用此代码..