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..