我有$var1
,$var2
,$var3
和$type
。我想在$var1
时检查$var2
和$type=1
是否为空,但$type=2
时我想检查$var1
,$var2
和{{ 1}}是空的。
我试过
$var3
但在 if(($type==1 AND empty($var) AND empty($var1)) OR ($type==2 AND empty($var1) AND empty($var2) AND empty($var3)))
{//...}
时,它在第二种情况下不起作用
那么如何用一个if语句完成这个呢?
答案 0 :(得分:3)
不要使用“if”,而是利用掉落在开关中的案例
$result = TRUE;
switch ($type) {
case 2:
$result = $result && empty($var3);
case 1:
$result = $result && empty($var2);
$result = $result && empty($var1);
break;
default:
$result = FALSE;
}
答案 1 :(得分:1)
我建议使用多个if语句:
switch($type) {
case 1: if(empty($var1) && empty($var2)) {
…
}
break;
case 2: if(empty($var1) && empty($var2) && empty($var3)) {
…
}
break;
}
答案 2 :(得分:1)
在第一种情况下,您写了$var
而不是$var1
。
请参阅换行符:
if (
($type==1 AND empty($var) AND empty($var1))
OR
($type==2 AND empty($var1) AND empty($var2) AND empty($var3))
) {}
// ^
如果您的代码不完全难以辨认,您已经发现了这一点。
否则,your code does perform as advertised:
<?php
$type = 2;
$var = '';
$var1 = '';
$var2 = '';
$var3 = '';
if(($type==1 AND empty($var) AND empty($var1)) OR ($type==2 AND empty($var1) AND empty($var2) AND empty($var3))) {
echo '!';
}
// Output: !
?>
这个事实使得这完全没有问题。今后请更加关注您的问题,提供实际重现问题的实际测试用例,以证明您没有犯下其他错误,而您没有向我们展示。