PHP鼓励循环部分循环

时间:2011-05-17 12:17:36

标签: php loops foreach

我想要循环到循环而不通过循环的所有代码。例如,在示例代码中,我想继续循环而不必遍历匹配的if语句下面的任何if语句。

注意:我知道使用switch语句可以更好地完成与此示例类似的操作,但我的if语句集并不像这样简单。

foreach($array as $key=>$value){
    if(is_varchar($value)){loop;}
    if(is_text($value)){loop;}
    if(is_mediumText($value)){loop;}
    if(is_boolean($value)){loop;}
    if(is_integer($value)){loop;}
    if(is_float($value)){loop;}
    if(is_double($value)){loop;}
}

4 个答案:

答案 0 :(得分:3)

使用continue

  

continue在循环结构中用于跳过当前循环迭代的其余部分,并在条件评估和下一次迭代开始时继续执行。

答案 1 :(得分:3)

foreach($x as $y){
    if($y==0){continue;}
    if($y==1){continue;}
    if($y==2){continue;}
    if($y==3){continue;} }

答案 2 :(得分:1)

这里没有看到不使用switch的原因。

foreach ($x as $y) {
  switch ($y) {
    case 0: continue; break;
    case 1: continue; break;
    case 2: continue; break;
    case 3: continue; break;
  }
}

如果continue; - 语句是switch - 循环

中唯一的语句,则可以完全省略foreach
foreach ($x as $y) {
  switch ($y) {
    case 0: doSomethingA(); break;
    case 1: doSomethingB(); break;
    case 2: doSomethingC(); break;
    case 3: doSomethingD(); break;
  }
}

更新(更新问题后):

switch - 语句仍然可用(在我看来更具可读性)

foreach($array as $key=>$value){
  switch (true) {
    case is_varchar($value): continue; break;
    case is_text($value): continue; break;
    // And so on
  }
}

只要代码什么都不做,你也可以稍微简化一下。

foreach($array as $key=>$value){
  switch (true) {
    case is_varchar($value): 
    case is_text($value):
      continue;
    break;
    // And so on
  }
}

答案 3 :(得分:0)

你的意思是这样吗?

foreach($x as $y) {

    if ($y == 1) {
        doThis();
        continue;
    }

    // or something like this?
    switch($y) {
          case 2:
              doThat();
              continue;
     }
}