在php中使用逆条件顺序在if else条件下使用OR

时间:2017-02-02 08:53:57

标签: php

如果我的条件为假,我想尝试“OK”,我想保持相同的if if order作为给定示例,不建议在“if”和“if”内容中移动“else”内容“else ”

 <?php

    //Case 1 Both False
    //$point = 1001; //more than 100
    //$flag  = 1;   //flag is = 0 

    //Case 2 First False Second True
    //$point = 1000; //less than 1000
    //$flag  = 0;   //flag is = 0 

    //Case 3 First TRUE Second FALSE
    //$point = 100; //less than 100
    //$flag  = 1;   //flag is = 1 

    $point = 1001;
    $flag  = 1;   
    ?>

    <div class="box border">
    <div class="box-title">
    <?php if($flag == 0 || $point < 1000) { ?>
    <h4>Not OK</h4>
    <?php } else { ?>
    <h4>OK</h4>
    <?php }?>
    </div>

在上面的脚本中 //案例1正在运作 但 案例2和案例3都不能与OR运算符一起使用

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

2 个答案:

答案 0 :(得分:2)

阅读你的评论后:

似乎你想要显示一些分数(在if-then-else的else分支中)如果用户等于/超过1000分你切换一个标志(基本上意味着&#34;总是显示积分&#34;)。

通常你会在if-branch中这样做:

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

由于你希望Not OK在if-Branch中,你需要反转条件,这样做意味着反转条件的每个部分和运算符

  • $flag变为!$flag
  • $point >= 1000变为$point < 1000
  • ||变为&&

结果:

if (!$flag && $point < 1000)
{
    echo "Not OK";
} else {
    echo "OK";
}

将其写入真值表:

flag        point       result
0           < 1000      Not OK
1           < 1000      OK
0           >=1000      OK
1           >=1000      OK

答案 1 :(得分:0)

我测试了这段代码并且有效。

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