在php中,按逆条件顺序使用或在if-else条件内

在php中,按逆条件顺序使用或在if-else条件内,php,Php,如果我的条件为False,我试图得到“OK”,我希望保持与给定示例相同的if-else顺序,不要建议移动“if”中的“else”内容和“else”中的“if”内容 不好 好啊 在上面的脚本中 //案例1正在发挥作用 但是 案例2和案例3均不与或操作员一起工作 我希望所有3个案例都能以相同的模式工作我测试了这段代码,它能正常工作 if(!($flag != 0 || $point >= 1000)){ echo "Not OK"; }else{ echo "OK"; }

如果我的条件为False,我试图得到“OK”,我希望保持与给定示例相同的if-else顺序,不要建议移动“if”中的“else”内容和“else”中的“if”内容


不好
好啊
在上面的脚本中 //案例1正在发挥作用 但是 案例2和案例3均不与或操作员一起工作


我希望所有3个案例都能以相同的模式工作

我测试了这段代码,它能正常工作

if(!($flag != 0 || $point >= 1000)){
    echo "Not OK";
}else{
    echo "OK";
}

阅读您的评论后:

如果用户的分数等于/超过1000分您切换了一个标志(基本上意味着“始终显示分数”),那么您似乎希望显示一些分数(在if-then-else的else分支中)

通常,您会在if分支中执行此操作:

if ($flag || $point >= 1000)
{
    echo "OK";
} else {
    echo "Not OK";
}
由于您希望
Not OK
位于if分支中,因此需要反转条件,这样做意味着反转条件的每个部分以及运算符

  • $flag
    变为
    $标志
  • $point>=1000
    变为
    $point<1000
  • |
    变成
    &
结果:

if (!$flag && $point < 1000)
{
    echo "Not OK";
} else {
    echo "OK";
}
if(!$flag&&$point<1000)
{
回声“不正常”;
}否则{
回音“OK”;
}
将其写入真值表:

flag        point       result
0           < 1000      Not OK
1           < 1000      OK
0           >=1000      OK
1           >=1000      OK
标志点结果
0<1000不正常
1<1000正常
0>=1000正常
1>=1000正常

可能重复@tkausl,这不完全相同,我使用了与此问题不同的示例,现在我的示例对测试材料非常清楚,我希望从这里了解到您希望这三种情况都能与输出一起工作,对吗?@rahul_m,对
如果(!$flag&$point 1000)){
,这基本上意味着
$flag
控制您是否检查
$point
$flag=false
意味着您检查
小于/等于
$flag=true
意味着您检查
大于
)请输入相反的条件并打印“OK”在问题中已经提到的else语句中,最后我得到了我的逻辑问题的解决方案,该解决方案在所有3种情况下都有效(干杯:)
flag        point       result
0           < 1000      Not OK
1           < 1000      OK
0           >=1000      OK
1           >=1000      OK