在调用函数时是否有可能打破循环?

时间:2014-09-15 12:56:34

标签: php loops

我们说我有一个简单的代码:

while(1) {
  myend();
}

function myend() {
  echo rand(0,10);
  echo "<br>";
  if(rand(0,10) < 3) break;
}

这不适用于错误代码&#39;致命错误:无法在线上突破/继续1级&#39;。

那么在subfunctin执行期间是否有可能终止循环?

3 个答案:

答案 0 :(得分:3)

使循环条件取决于函数的返回值:

$continue = true;
while( $continue) {
    $continue = myend();
}

然后,将您的功能更改为:

function myend() {
  echo rand(0,10);
  echo "<br>";
  return (rand(0,10) < 3) ? false : true;
}

答案 1 :(得分:1)

没有。不应该;如果你的函数被调用到你不在循环中的某个地方,你的代码就会停止。在上面的示例中,您的调用代码应检查函数的返回值,然后决定是否停止循环。例如:

while(1) {
  if (myend())
    break;
}

function myend() {
  echo rand(0,10);
  echo "<br>";
  return rand(0,10) < 3;
}

答案 2 :(得分:1)

使用:

$cond = true;
while($cond) {
  $cond = myend();
}

function myend() {
  echo rand(0,10);
  echo "<br>";
  if(rand(0,10) < 3) return false;
}
相关问题