代码之家  ›  专栏  ›  技术社区  ›  Ahmad Fraz

如果函数退出,如何继续“For循环”

  •  -1
  • Ahmad Fraz  · 技术社区  · 7 年前

    如果调用函数execute,我想继续for循环 退出(); 陈述

    注: 当$i=2时,不应处理剩余的代码行;所以,我需要帮助退出我的函数,但不是 for循环 .

    此外,我有很多条件,所以我不能使用其他条件。

    我已经试过了 回来 声明但有返回;语句函数执行剩余的代码行,这是主要问题!。 我们将非常感谢您的帮助!

    例如

     for($i=0;$i<=5;$i++){
       $this->calculate($i);
     }
    
     function calculate($counter){
     if($counter==2){
      exit(0);
     }
      echo "My remaining code lines";
    }
    
    5 回复  |  直到 7 年前
        1
  •  2
  •   Alex    7 年前

    更新的答案

    在你的评论之后。我们必须让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;
     }
    
        2
  •  1
  •   mega6382    7 年前

    而不是 exit 使用 return 因为 出口 终止执行,同时 回来 仅存在当前函数。

    而不是 if-else 您可以使用 swtich-case ,如下所示:

    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() 回来 s false .

        3
  •  0
  •   Jaimin Vyas    7 年前

    return 使用的语句。

    for(condition){
       return();
    }
    
        4
  •  0
  •   Abey    7 年前

    只需使用 return 相反它将返回给调用者,因此您可以继续执行。

    for($i=0;$i<=5;$i++){
       $this->calculate($i);
     }
    
     function calculate($counter){
        if($counter==2){
          return;
        }
        echo "My remaining code lines";
     }
    
        5
  •  0
  •   Nimesh Patel    7 年前

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

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