PHP运算符if语句'和'和'或'

Fra*_*lar 3 php logic if-statement

我有一个if语句,我想控制一个字段需要输入,他们必须选择其他2个选项之一.

if(test1 && test || test3){
//Something here
}
Run Code Online (Sandbox Code Playgroud)

我应该这样做:

if(test1 && (test2 || test3)){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢 我无法绕过逻辑......

cb1*_*cb1 13

if ($requiredField && ($optional1 || $optional2)) {
  /* Do something */
}
Run Code Online (Sandbox Code Playgroud)

对于/* Do something */要执行的代码位,if语句必须求值TRUE.

这意味着,$requiredField必须是TRUE,所以必须如此($optional1 || $optional2).

对于$requiredFieldTRUE,只需要在要填充-和第二部分:($optional1 || $optional2)要么optional1还是optional2会做.

编辑:

重读这个问题之后,似乎我可能误会了你.如果用户必须输入一条特定的信息,并且 必须从两个选项中只选择一个(不是两个),则应使用以下选项.

if ($requiredField && ($optional1 ^ $optional2)) {
  /* Do something */
}
Run Code Online (Sandbox Code Playgroud)

这意味着$optional1$optional2必须填写 - 但不是两者都填写.

  • 很好的命名.也许解释为什么这样有效,因为OP不理解使用这个if语句的逻辑.:) (2认同)