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


PHP AND (&&), OR (||) prioritisation in conditional statements

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

例如,我们的目标是…

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上讨论过了,我很抱歉,我试着搜索但没有找到任何东西,尽管我的搜索条件可能是错误的。

检查这个:

if (($Var1 == "a" && $Var2 == "z") || ($Var3 == "5")){
    //TRUE
        echo "HELLO WORLD";
        //<some code block here>
}

实际上,您不需要额外的圆括号,如&&优先级高于||。然而,它有助于让一切都易于跟踪。

你就快到了:

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

仔细看括号的顺序。在我遇到的几乎每一种语言中,条件语句中的括号都表示要对括号内表达式的结果进行整体求值。PHP也不例外——只有当var1 = a和var2 = z时,前半部分才为真,而当var3 = 5时,后半部分才为真。当[var1, var2] = [a,z]或[var3] = [z]时,complete为真。

这样使用:-

if (($Var1 == "a" && $Var2 == "z") || ($Var3 == "5")) {
    echo "Hello World";
}
if ($Var1 == 'a' && $Var2 == 'b' || $Var3 == 5)
{ 
//run block of code.
}