繁体   English   中英

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

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

有人可以解释一下是否可以将一个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上对此进行了讨论,我尝试搜索但没有发现任何结果,尽管我的搜索字词可能是错误的。

检查一下:

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

        //<some code block here>
}

实际上,您不需要多余的括号,因为&&的优先级高于||。 但是,它有助于使所有内容易于跟踪。

像这样使用:

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

您几乎在那里:

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

仔细查看括号的顺序。 在我所遇到的几乎每种语言中,条件括号都表示要对括号中表达式的结果进行整体评估。 PHP也不例外-前半部仅在var1 = a和var2 = z时才为真,而or的另一半则仅在var3 = 5时才为真。 ,z]或[var3] = [z]。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM