检查变量是否为空

时间:2012-01-28 18:03:36

标签: php if-statement

我有$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语句完成这个呢?

3 个答案:

答案 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: !
?>

这个事实使得这完全没有问题。今后请更加关注您的问题,提供实际重现问题的实际测试用例,以证明您没有犯下其他错误,而您没有向我们展示。