检查变量等于某个数字

Zoo*_*der 0 php validation if-statement

我需要检查以确保变量等于5,10,50或100.如果没有那么我想将其设置为5.有人能告诉我这个IF语句有什么问题吗?

if (isset($_REQUEST['number']) && $_REQUEST['number'] !== "5" || $_REQUEST['number'] !== "10" || $_REQUEST['number'] !== "50" || $_REQUEST['number'] !== "100") {
  $number = 5;
} else {
  $number = $_REQUEST['number'];
}
Run Code Online (Sandbox Code Playgroud)

Jas*_*ary 5

您需要分解逻辑以克服运算符优先级.如有疑问,请使用括号.

我也颠倒了逻辑.它读起来更自然.

if (isset($_REQUEST['number']) && ($_REQUEST['number'] == "5" || $_REQUEST['number'] == "10" || $_REQUEST['number'] == "50" || $_REQUEST['number'] == "100")) {
  $number = $_REQUEST['number'];
} else {
  $number = 5;
}
Run Code Online (Sandbox Code Playgroud)

虽然上面的工作,你也可以用类似的东西来简化它in_array().

isset($_REQUEST['number']) && in_array($_REQUEST['number'], array(5, 10, 50, 100))
Run Code Online (Sandbox Code Playgroud)

  • "不是5或者不是10或者不是50或者不是100"是*总是*是真的. (2认同)