Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “如何继续”;For Loop";如果函数退出_Php_Codeigniter_Return_Exit - Fatal编程技术网

Php “如何继续”;For Loop";如果函数退出

Php “如何继续”;For Loop";如果函数退出,php,codeigniter,return,exit,Php,Codeigniter,Return,Exit,如果调用函数executeexit(),我想继续我的for循环语句 注: 当$i=2时,不应处理剩余的代码行;因此,我需要的主要帮助是退出函数,而不是退出循环 此外,我有很多条件,所以我不能使用,如果其他 我已经尝试了返回语句,但带有返回;语句函数执行剩余的代码行,这是主要问题!。 任何帮助都将不胜感激 比如说 for($i=0;$i<=5;$i++){ $this->calculate($i); } function calculate($counter){ if(

如果调用函数executeexit(),我想继续我的for循环语句

注: 当$i=2时,不应处理剩余的代码行;因此,我需要的主要帮助是退出函数,而不是退出循环

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

我已经尝试了返回语句,但带有返回;语句函数执行剩余的代码行,这是主要问题!。 任何帮助都将不胜感激

比如说

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

 function calculate($counter){
 if($counter==2){
  exit(0);
 }
  echo "My remaining code lines";
}
for($i=0;$i计算($i);
}
函数计算($counter){
如果($counter==2){
出口(0);
}
回显“我剩余的代码行”;
}

更新答案

在您的评论之后。我们必须让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
使用的语句

for(condition){
   return();
}

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

而不是
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;
    }
}
用于($i=0;$i计算($i))
{
持续
}
}
函数计算($counter){
交换机($计数器){
案例2:
返回false;
违约:
回显“我剩余的代码行”;
打破
}
}
Edit:如果方法
calculate()
return
s
false
只需使用a,我已更新了答案,将循环移动到下一次迭代。它将返回给调用方,因此您可以继续执行

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

 function calculate($counter){
    if($counter==2){
      return;
    }
    echo "My remaining code lines";
 }
for($i=0;$i计算($i);
}
函数计算($counter){
如果($counter==2){
回来
}
回显“我剩余的代码行”;
}
//使用return()函数..退出()停止执行

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

使用
return
退出函数调用,而不是整个脚本。Hi@MattClark,使用return函数执行剩余的代码行。这是主要问题。您想退出。return将我们带回循环,允许我们继续执行,但您说“您不想执行剩余的代码行”,在你的问题中,你说你想“退出我的函数,但不退出循环。”那是哪一个呢?Break将我们永远从foreach中删除,continue允许我们继续使用foreach,但要遍历其余的行……是的@Alex,如果$counter=2,我想中断函数执行,因此,根据我的实践,我们不能在循环外使用Break和continue语句。我们知道exit()函数终止所有脚本,return语句执行“剩余的代码行”。那么我应该怎么做才能满足我的要求呢???读了我更新的答案,我甚至附上了一个运行代码示例(一个带break,一个带continue).我们只是让for函数知道如何通过返回false并查找false返回来中断;与仅返回完全不同开关盒unnecessary@Alex正如OP所说,他有很多条件,只有一个输入变量,这里的开关可能更为优化。事实上,他错过了这一部分!亲爱的@mega6382,上面说的是for循环变量值可以是动态的。我们不知道值的范围。所以我们不能使用用例。Hi@Alex,使用return;语句,函数执行剩余的代码行。这是主要问题。更新了,这有帮助吗?亲爱的@Alex,使用return;语句,函数执行剩余的代码行不是像这样使用时。
 function calculate($counter){
 if($counter==2){
  return;
 }
  echo "My remaining code lines";
}
?>