php小白又遇到问题了我现在有一个多层if语句,需要判断10个变量是否为空。 代码样式如下:
if(empty($a1)) {
  if(empty($a2)){
     if.... (共有十个if)
     else...
  }
  else{
     if....
     else...
  }
}
else{
  if(empty($a2)){
     if....
     else...
  }
  else{
     if....
     else...
  }}
不知道怎样可以精简if代码呢,10层实在太复杂了

解决方案 »

  1.   

    可以用一个数组,然后遍历这个数组来判断$array=array('a1'=>'','a2'=>'3','aa'=>'5','a3'=>'','a65'=>'test');
    foreach ($array as $key=>$value){
        if (empty($value)){
            echo $key.'Null';
        }else{
            echo $key.'not null';
        }
    }如果变量是有规律的可以直接for 循环变量 然后判断每个变量是否为空
      

  2.   

    10个if 这是什么需求。 可以考虑用 switch 看能不能取代。
      

  3.   

    if与switch相比,效率远不如switch,多层判断,建议采用与数组相结合方式。
      

  4.   

    用循环和递归吧, 看有没有规律可寻,如果有,就好办了,如果没有改改结构,如果他们只反回一个值就好办了,个人建议尽量用if () {} else if () {} else {}这样的结构, 这样也易于维护