在嵌套的If中放置Else

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

Use AND comparison operator or && comparison operator instead of & bitwise operator.

For a quick review of PHP operators go here

Replace this:

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

with this

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

Its two & signs not only one.

on your first if . if you want to execute it

if your name,age and email is empty or not set

you need atleast to put ! on every $result[] and change your & to &&

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

try to use this code..