如果数字不是1或0,则给出错误

<?php
$gender = 0;
if (($gender != 0) || ($gender != 1))
{
    die('error:Must select a gender.');
}
?>

This should give a error if the gender is anything other than 1 or 0. So if i gave 5 it should die. If i gave it 1 it should not die. If i give it 0 it should not die.

I was thinking about a few work arounds

<?php
$gender = 0;
if ($gender == 0)
{
//number is okay
}
else if ($gender == 1)
{
//number is okay
}
else
{
die('error:Must select a gender.');
}
?>

Well that looks sloppy and it would work or i could create a array with 0 and 1 and check if its in it or not. Kinda overkill i think.

Not sure what i'm doing wrong.

You're using the wrong boolean operator:

 if (($gender != 0) || ($gender != 1)) {
 }

This will be entered if gender is 0, too, because it isn't 1, and vice versa. What you need to do is:

 if (($gender != 0) && ($gender != 1)) {
 }

Look at this table:

gender  A (gender != 0)    B (gender != 1)     A || B     A && B
----------------------------------------------------------------
0       false              true                true       false
1       true               false               true       false
5       true               true                true       true

Also note Joshua's suggestion in the comments:

if (($gender == 0) || ($gender == 1)) {
    /* number is ok */
} else {
    die();
}

which is a bit longer, but more readable.

if (($gender != 0) && ($gender != 1))
                   ^^

You want to die if both tests are true.

Change the or (||) to and (&&) and it should work, as you only want to fail, when it’s both not 0 and not 1.