我正在尝试回声结果"好的" if(1 both both both)变量为true,我到目前为止这样做了
<?php
$user_id = $_SESSION['user_id'];
$point= "select points from users where id = $user_id "; // in db right now points = 2000
$flag= "select m_boost from users where id = $user_id "; // in db right now flag = 1
?>
<div class="box border">
<div class="box-title">
<?php
if($point < 1000 || $flag = 0) {
echo "not ok";
} else { ?>
echo "ok";
<?php }?>
</div>
如果我愿意的话,它会正常工作
if(($point == '2000') || ($flag == '0') ){
但是我不想要= $运算符$ point我想要小于&lt; $ point&lt; &#39; 999&#39;
问题是: 继续得到结果&#34;不行&#34;甚至一个变量(flag = 1)在db
中为真Expected Results:
我想打印&#34;好的&#34; if $ point&gt; 1000或flag == 1,
答案 0 :(得分:1)
试试这个
当您使用OR条件时,您应该注意条件和登录。你应该在if条件而不是其他条件下实现逻辑。
if($point > 1000 || $flag ==1) {
echo "ok";
}else {
echo 'Not ok'
}
或者你想要
if($point < 1000 ) {
echo "Not ok";
}else if($flag ==0) {
echo 'Not ok'
}esle {
echo 'ok'
}
或者你可以这样使用
$a=false;
if($point < 1000 ) {
$a=true;
}else if($flag ==0) {
$a=true;
}esle {
$a=false;
}
// you can use this variable in your condition.
if($a) {
echo "ok";
}else {
echo 'Not ok'
}
答案 1 :(得分:0)
$flag = 0
您将变量的值设置为0。 例如:
$flag = 1;
if($a < $b || $flag = 0){ //$flag's value is 0 now.
...
...
}
在条件比较中,正确的算子是&#34; ==&#34;。
if($point < 1000 || $flag == 0) {
但是我不想要= $运算符$ point我想要小于&lt; $ point&lt; &#39; 999&#39;
没有完全理解你的目标,但也许:
为了检查范围内的值,正确的逻辑运算符应为&#34; and
&#34; (&&
);
if($point > 0 && $point < 999){
<强>更新强>
如果$ point&gt; 1000或flag == 1
if($point > 1000 || $flag == 1){
echo "ok"
}
答案 2 :(得分:0)
当您使用OR时,如果满足第一个条件,则忽略第二个条件。
另外,请确保使用双等号(==
)进行比较,而不是单等号(=
),这意味着分配。
因此,您想要替换它:
if($point < 1000 || $flag = 0) {
其中一个:
围绕
if($flag == 0 || $point < 1000) {
或
使用&&
INSTEAD
if($point < 1000 && $flag == 0) {
取决于您正在寻找的行为。它有点不清楚 - 所以你的任何额外澄清都会有所帮助。
一旦你得到了你认为有用的东西,试着测试所有可能的组合,这样你就可以确信它的效果如你所愿。
答案 3 :(得分:0)
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
根据我的问题,现在为我工作
我认为我们都是出于某些贡献的原因,如果你得到解决方案而不是回应,那么标记问题不是一种方式,否则我的问题是100%明确的。