修复 if 条件 php & 和 or 在相同的 if 范围内

Fix if condition php & and or in same if range

提问人:Otávio Barreto 提问时间:7/16/2023 更新时间:7/16/2023 访问量:27

问:

尝试添加 & 和 or 如果 但 or 条件不起作用

else if ($usuario = 12 & $banca <=3 or =>7){
    echo "ok";
    }

只在工作时工作,但在工作时不工作,这是怎么回事?$banca <=3$banca >=7

我尝试检查的范围在 <=3 和 >=7 之间

php if 语句 范围

评论


答:

2赞 Eduardo Pacheco 7/16/2023 #1

您的代码存在一些问题。一个更简单,一个更复杂的问题:语法和运算符的优先级。

首先,运算符是用于赋值的,而不是比较的。因此,的结果是 。之后,你有一个按位运算符,它将输出 if ,否则 。最后,您正在获取该结果并检查它是否是.换句话说:在不了解运算符的情况下使用运算符不会带你去任何地方。请更深入地研究 php 语言。=$usuario = 1212&0$banca > 312>= 7

虽然你的语法在PHP中是有效的,但运算符的优先级也会弄乱结果。看看 PHP 的运算符优先级。这就是 linter 和最佳实践手册将指示您添加括号以明确您的标准的原因之一,而不是依赖于晦涩难懂的运算符优先级。

现在,我们如何解决它?同样,请进一步研究 PHP 的运算符及其语法。有一些不错的课程,还有PHP的官方手册。但是,为了不让你悬而未决,以下是您的状况应该是什么样子的:

if ($usuario === 12 && ($banca <= 3 || $banca >= 7)) { ... }