我正面临着这样的情况((从php docs中提取))
在循环中包含的文件中使用continue语句将产生错误。例如:
// main.php
for($x=0;$x<10;$x++)
{ include('recycled.php'); }
// recycled.php
if($x==5)
continue;
else
print $x;
它应该打印“012346789”no 5,但它会产生错误:
Cannot break/continue 1 level in etc.
有一个解决方案吗?我的意思是我需要以这种方式“处理”recycled.php,其中使用continue语句不会导致此错误,请记住这是易于理解的示例代码,在真实的情况我需要找到一种方法来继续main.php文件的循环。。
答案 0 :(得分:7)
您可以在return
中使用continue
代替page2.php
:
if ($x == 5) {
return;
}
print $x;
如果包含或需要当前脚本文件,则控制为 传回给调用文件。此外,如果是当前的脚本 包含文件,然后返回的值将返回为 包含调用的值。
PHP: return
答案 1 :(得分:2)
简单的不包括X = 5的页面?!
for($x=0;$x<10;$x++)
{
if ($x != 5)
include('page2.php');
}
你无法继续,因为page2.php在include()函数的范围内运行,它不知道外部循环。
您可以在return
内使用continue
代替page2.php
(这将“返回”包含功能):
if ($x == 5)
return;
echo $x;
答案 2 :(得分: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)
}
答案 3 :(得分:0)
试试这个!这可能适合你。
// page1.php
for($x=0;$x<10;$x++)
{ include('page2.php');
// page2.php
if($x==5)
continue;
else
print $x;
}
答案 4 :(得分: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;
答案 5 :(得分:0)
您希望在包含的页面中继续循环:
试试这个:
for($x=0;$x<10;$x++)
{
$flag = 1;
if($flag==0){
continue;
}
include('./page2.php');
}
if($x==4)
$flag = 0;
else
print $x;
答案 6 :(得分:0)
您的代码错误,因为您不在循环中使用continue!我不知道你为什么要包括同样的文件5次。
for($x=0;$x<10;++$x)
{
//include('page2.php');
if($x!=5)
print $x;
}