如果我的条件为假,我想尝试“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个案例都以相同的模式工作
答案 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";
}