条件语句中的PHP AND(&&),OR(||)优先级

时间:2013-04-08 12:08:01

标签: php conditional-statements conditional-operator

有人可以解释是否可以将PHP If条件语句(包含说AND)与另一个OR语句合并?如果是这样,如何构建语法?哪个优先?

例如,可能的目标是实现类似......

IF ($Var1 == "a" && $Var2 == "z"){
    //TRUE
        echo "HELLO WORLD";

        //<some code block here>
}

OR

IF ($Var3 == "5"){
    //TRUE
        echo "HELLO WORLD";

        //<some code block here>
}

但是合并为一个if条件语句,这样我就不必为两个if语句复制我的代码块(我知道我可以把代码放在函数的IF语句中运行,但是还有另一个这样做的方式)。

总结(注意,下面的括号纯粹是作为一种分组项目的方式添加的,以表明我对如何运行/处理代码的意图):

(If Var1 = a AND Var2 = b) OR (if Var3 = 5), run block of code.

如果有人可以帮助我,我真的很感激。几个月来我一直试图找到这个但却无处可去。抱歉,如果这已经在Stack Overflow上进行了讨论,我尝试搜索但没有发现任何内容,尽管我的搜索条件可能是错误的。

4 个答案:

答案 0 :(得分:4)

检查一下:

if (($Var1 == "a" && $Var2 == "z") || ($Var3 == "5")){
    //TRUE
        echo "HELLO WORLD";

        //<some code block here>
}

事实上,你不需要额外的括号,因为&amp;&amp;优先级高于||。但是,它有助于让一切都很容易跟踪。

答案 1 :(得分:3)

像这样使用: -

if (($Var1 == "a" && $Var2 == "z") || ($Var3 == "5")) {
    echo "Hello World";
}

答案 2 :(得分:3)

你快到了那里:

if ( ($Var1 == "a" && $Var2 == "z") || ($Var3 == "5") ) {

仔细查看括号的顺序。在我遇到的几乎所有语言中,条件中的括号表示括号中的表达式的结果将作为整体进行评估。 PHP也不例外 - 前半部分只有在var1 = a和var2 = z的情况下才为真,而另一半只有当var3 = 5时才为真。当[var1,var2] = [a时,则完成为真,z]或[var3] = [z]。

答案 3 :(得分:0)

if ($Var1 == 'a' && $Var2 == 'b' || $Var3 == 5)
{ 
//run block of code.
}