if($a=="" and $b=="" or $c=="") {
echo "something";
}
我想问一下,如果$a
和$b
为空,则会打印:something
。但是如果$b
不为空,那么它将检查这样的语句,例如如果$a
为空并且$c
为空,则打印:something
(方法$a
必须使用空$b
或{{1}的变量进行检查}})
答案 0 :(得分:1)
请参阅PHP Operator Precedence表。 and
的优先级高于or
,因此您的情况会被视为您已经写好
if (($a == "" and $b == "") or ($c == ""))
由于您希望$a
检查是独立的,因此您需要使用括号来强制执行不同的分组:
if ($a == "" and ($b == "" or $c == ""))
请注意,在表达式中,使用&&
和||
而不是and
和or
是常规的 - 后者通常用于作业中控制结构,因为它们的优先级低于赋值。 E.g。
$result = mysqli_query($conn, $sql) or die (mysqli_error($conn));
答案 1 :(得分:0)
只需使用括号强制比较顺序/优先级:
if( $a == "" and ( $b == "" or $c == "" ) )
但您最好使用&&
和||
:
if( $a == "" && ( $b == "" || $c == "" ) )
答案 2 :(得分:0)
我想你需要这样的东西:
if (
($a == '')
&&
(
($b == '')
||
($c == '')
)
)
所以,只有当$ a为空并且$ b或$ c为空时才会打印something