如果函数退出,如何继续 "For-Loop"

How to continue "For-Loop" if function exit

如果调用函数执行 exit(); 语句,我想继续我的 for 循环。

注意: 当 $i=2 时,不应处理剩余的代码行;所以,我需要的主要帮助是退出我的功能,而不是 for-loop.

另外,我有很多条件,所以我不能使用if-else。

我已经尝试过 return; 语句但是使用 return;语句函数执行剩余的代码行,这是主要问题!。 任何帮助将不胜感激!

例如

 for($i=0;$i<=5;$i++){
   $this->calculate($i);
 }

 function calculate($counter){
 if($counter==2){
  exit(0);
 }
  echo "My remaining code lines";
}

更新的答案

在您发表评论后。我们必须让 for 循环知道我们不想继续。由于逻辑是分开的,我们可以这样做:

for ($i = 0; $i <= 5; $i++) {
    if ($this->calculate($i) == false) {
        break;
    }
}

function calculate($counter) {
    if ($counter == 2) {
        return false;
    }
    echo "My remaining code lines";
    return true;
}

原始答案

不退出函数。它会停止任何进一步的处理。

简单return:

function calculate($counter){
 if($counter==2){
  return;
 }

return 使用语句。

for(condition){
   return();
}

而不是 exit 使用 return 因为 exit 终止执行,而 return 只存在当前函数。

您可以使用 swtich-case 而不是 if-else,像这样:

for($i=0;$i<=5;$i++){
   if(!$this->calculate($i))
   {
       continue;
   }
 }

function calculate($counter){
    switch($counter){
         case 2:
          return false;
         default:
          echo "My remaining code lines";
         break;
    }
}

编辑: 如果方法 calculate() returns false,我已经更新了我的答案以将循环移动到下一次迭代。 =21=]

只需使用 return 即可。它会 return 给调用者,因此你可以继续执行。

for($i=0;$i<=5;$i++){
   $this->calculate($i);
 }

 function calculate($counter){
    if($counter==2){
      return;
    }
    echo "My remaining code lines";
 }

// 使用 return() 函数 .. exit() 停止执行 ...

 function calculate($counter){
 if($counter==2){
  return;
 }
  echo "My remaining code lines";
}
?>