PHP 运算符 if 语句 'and' 和 'or'

标签 php if-statement logic

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

if(test1 && test || test3){
//Something here
}

我应该这样做吗:

if(test1 && (test2 || test3)){
//do stuff
}

我该怎么做。我无法理解逻辑...

最佳答案

if ($requiredField && ($optional1 || $optional2)) {
  /* Do something */
}

对于要执行的 /* Do something */ 代码位,if 语句的计算结果必须为 TRUE

这意味着,$requiredField 必须为 TRUE,因此必须为 ($optional1 || $optional2)

要使 $requiredFieldTRUE,只需填写它 - 对于第二部分:($optional1 || $optional2) optional1optional2 都可以。

编辑:

重新看了一遍题目,好像是我理解错了。如果用户必须输入一条特定的信息,并且必须从两个选项中只选择一个(而不是两个)——那么下面应该被使用。

if ($requiredField && ($optional1 ^ $optional2)) {
  /* Do something */
}

这意味着必须填写 $optional1$optional2 - 但不能同时填写两者。

关于PHP 运算符 if 语句 'and' 和 'or',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072225/

相关文章:

csv - Powershell:如果 CSV 条目为空,如何引发错误

javascript - 如果 fetch 中 boolean 为 false 如何跳过 next .then() ?

Javascript if 语句计算结果为 false,但仍然运行(仅限 Safari)

php - 这是否正确使用 PDO 和准备好的语句来实现安全登录?

php - 使用php中的位置 header 留在同一页面

jquery - 如果条件与 css : setting a border and removing when clicked consequently

algorithm - 仅比较已更新列表的高效算法

javascript - 从我们的网站上传到 Google 云端硬盘

php - Ajax 弹出窗口

c - 输出变量变为 0。可能存在逻辑错误