3

I am a PHP noob working through the tutorials and I found an issue with nested If Else that I don't understand. I have an outer if with a series of inner if's. And, I have an else I wanted associated with the outer if. My original code never executed the else, which should occur if the outer if was false. The original code was:

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

As I said, the else was never executed. However, I moved the else inside the brackets and it worked. The working code is:

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

This seems to be wrong to me. Probably just some noob mistake but I cannot figure it out. Thanks for your help...RG

4

3 に答える 3

1

これを置き換えます:

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

これとともに

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

その2つと1つだけではない兆候。

于 2012-11-22T01:40:06.900 に答える
1

ビット演算子の代わりに、比較演算AND子または比較演算子を使用してください。&&&

PHP演算子の簡単なレビューについては、こちらをご覧ください

于 2012-11-22T01:47:14.267 に答える
0

あなたの最初の場合。実行したい場合

名前、年齢、メールアドレスが空または設定されていない場合

あなたは少なくとも!すべてを着て、あなたをに$result[]変える必要があります&&&

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

このコードを使用してみてください。

于 2012-11-22T01:44:13.880 に答える