我如何在PHP中使用或运算符?

时间:2015-04-16 20:04:48

标签: php if-statement

if($a=="" and $b=="" or $c=="") {
    echo "something";
}

我想问一下,如果$a$b为空,则会打印:something。但是如果$b不为空,那么它将检查这样的语句,例如如果$a为空并且$c为空,则打印:something(方法$a必须使用空$b或{{1}的变量进行检查}})

3 个答案:

答案 0 :(得分:1)

请参阅PHP Operator Precedence表。 and的优先级高于or,因此您的情况会被视为您已经写好

if (($a == "" and $b == "") or ($c == ""))

由于您希望$a检查是独立的,因此您需要使用括号来强制执行不同的分组:

if ($a == "" and ($b == "" or $c == ""))

请注意,在表达式中,使用&&||而不是andor是常规的 -​​ 后者通常用于作业中控制结构,因为它们的优先级低于赋值。 E.g。

$result = mysqli_query($conn, $sql) or die (mysqli_error($conn));

请参阅'AND' vs '&&' as operator

答案 1 :(得分:0)

只需使用括号强制比较顺序/优先级:

if( $a == "" and ( $b == "" or $c == "" ) )

但您最好使用&&||

if( $a == "" && ( $b == "" || $c == "" ) )

答案 2 :(得分:0)

我想你需要这样的东西:

if (
    ($a == '')
    &&
    (
        ($b == '')
        ||
        ($c == '')
    )
   )

所以,只有当$ a为空并且$ b或$ c为空时才会打印something