3

我是一名 PHP 菜鸟,正在阅读教程,我发现嵌套 If Else 存在我不理解的问题。我有一个外部 if 和一系列内部 if。而且,我有一个我想与外部 if 相关联的 else。我的原始代码从未执行过 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/>");
 }

正如我所说, else 从未被执行。但是,我将 else 移到了括号内,它起作用了。工作代码是:

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/>");
    }
}

这对我来说似乎是错误的。可能只是一些菜鸟错误,但我无法弄清楚。感谢您的帮助...RG

4

3 回答 3

1

替换这个:

if (!($result["name"] & $result["age"] & $result["email"]))

有了这个

if (!($result["name"] && $result["age"] && $result["email"]))

它的两个 & 标志不仅仅是一个。

于 2012-11-22T01:40:06.900 回答
1

使用AND比较运算符或&&比较运算符而不是&按位运算符。

如需快速查看 PHP 运算符,请访问此处

于 2012-11-22T01:47:14.267 回答
0

在你的第一个 if 。如果你想执行它

如果您的姓名、年龄和电子邮件为空或未设置

你至少需要穿上!每一个$result[]并改变你&&&

if (!($result["name"] && !$result["age"] && !$result["email"]))

尝试使用此代码..

于 2012-11-22T01:44:13.880 回答