如何在PHP中的IF语句中使用运算符和或
我尝试在PHP脚本中使用运算符和,或在IF语句中使用,如下所示:如何在PHP中的IF语句中使用运算符和或,php,if-statement,operators,Php,If Statement,Operators,我尝试在PHP脚本中使用运算符和,或在IF语句中使用,如下所示: if($user[id]=='1' AND (($_GET['f']=='f-ppas') || ($_GET['f']=='f-kua'))){ ..... } 但结果是错误的。有人能帮我吗?将和更改为& if($user['id']=='1' && (($_GET['f']=='f-ppas') || ($_GET['f']=='f-kua'))){ ..... } 和运算符有一些优先级问题 $
if($user[id]=='1' AND (($_GET['f']=='f-ppas') || ($_GET['f']=='f-kua'))){
.....
}
但结果是错误的。有人能帮我吗?将
和更改为&
if($user['id']=='1' && (($_GET['f']=='f-ppas') || ($_GET['f']=='f-kua'))){
.....
}
和
运算符有一些优先级问题
$this = true;
$that = false;
$truthiness = $this and $that;
上面的$truthiness
具有值true
。为什么?<代码>=
的优先级高于和。添加括号以显示隐式顺序使这一点更清楚:
($truthiness = $this) and $that
如果在第一个代码示例中使用&&
而不是和
,则它将按预期工作,并且为false
参考资料:定义“错误”。PS:奇怪的是,你在同一个表达式中使用和以及|
(而不是或)看起来不一致。使用&&
代替和$user[id]
将引起PHP通知,如果它没有'
。应该是$user['id']
我不知道您期望的是什么,但是当您使用A和(B或C)
时,这将计算为(A和B)或(A和C)
。也许不是你所期望的。@responsiblevebri:我没说这是个问题。我说它看起来不一致。那么你对IF语句的逻辑有问题。我不明白你想达到什么目的。更新您的问题,以便我们能够正确回答:)是的,它会起作用,但在某些情况下,如我在示例中所述,和
运算符存在优先级问题。如果说运算符存在优先级问题,这是很不公平的。不是。优先级定义得很好。所以,使用运算符而不检查其优先级的程序员有一些问题。好吧,选错了词。和
运算符如果不小心使用,将生成错误的输出:P