5

我正面临这样的情况((从php文档中提取))

在循环中包含的文件中使用 continue 语句将产生错误。例如:

 // main.php  

 for($x=0;$x<10;$x++)
 { include('recycled.php'); }

 // recycled.php

 if($x==5)
 continue;
 else 
 print $x;

它应该打印“012346789”没有五个,但它会产生错误:

Cannot break/continue 1 level in etc.

有解决方案吗??,我的意思是我需要以这种方式“处理”recycled.php,其中使用 continue 语句不会导致此错误,请记住这是易于理解的示例代码,在实际情况下我需要找到一种方法来继续 main.php 文件的循环。.

4

7 回答 7

8

您可以使用return代替continuewithin page2.php

if ($x == 5) {
  return;
}
print $x;

如果包含或需要当前脚本文件,则将控制权传递回调用文件。此外,如果包含当前脚本文件,则返回的值将作为包含调用的值返回。

PHP:返回

于 2013-06-07T07:54:49.893 回答
2

简单不包括 X=5 的页面?!

for($x=0;$x<10;$x++)
{ 
    if ($x != 5)
        include('page2.php'); 
}

你不能继续,因为 page2.php 在 include() 函数的范围内运行,它不知道外部循环。

您可以使用return而不是continueinside page2.php(这将“返回”包含函数):

if ($x == 5)
  return;

echo $x;
于 2013-06-07T08:01:15.050 回答
1

作为使用 continue 的替代方法,它在包含的文件中不起作用,您可以这样做:

// page2.php
if($x!=5) {
  // I want this to run
  print $x;
} else {
  // Skip all this (i.e. probably the rest of page2.php)
}
于 2013-06-07T07:50:10.693 回答
0

尝试这个!这可能对你有用。

// page1.php  

 for($x=0;$x<10;$x++)
 { include('page2.php');

 // page2.php

 if($x==5)
 continue;
 else 
 print $x;
}
于 2013-06-07T07:56:36.643 回答
0

你也可以这样做

// page1.php  

 for($x=0;$x<10;$x++)
 { include('page2.php'); }

 // page2.php

 if($x==5)
 { } // do nothing and the loop will continue
 else 
 print $x;
于 2013-06-07T07:56:40.843 回答
0

您想在包含的页面中继续循环:

尝试这个:

 for($x=0;$x<10;$x++)
 { 
     $flag = 1;
    if($flag==0){
        continue;
    }
    include('./page2.php'); 
}


if($x==4)
   $flag = 0;
else 
    print $x;
于 2013-06-07T07:59:33.583 回答
0

您的代码是错误的,因为您使用 continue 而不是循环!我不知道你为什么还要包含同一个文件 5 次。

for($x=0;$x<10;++$x)
{ 
 //include('page2.php'); 
 if($x!=5)
   print $x;
}
于 2013-06-07T08:07:06.393 回答