php,包含使用continue语句的文件

时间:2013-06-07 07:46:38

标签: php

我正面临着这样的情况((从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文件的循环。

7 个答案:

答案 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;
}