php,包括使用continue语句的文件
我面临这样的情况((摘自php文档)) 在循环中包含的文件中使用continue语句将产生错误。例如:php,包括使用continue语句的文件,php,Php,我面临这样的情况((摘自php文档)) 在循环中包含的文件中使用continue语句将产生错误。例如: // main.php for($x=0;$x<10;$x++) { include('recycled.php'); } // recycled.php if($x==5) continue; else print $x; 有一个解决方案???,我的意思是我需要以这种方式“处理”recycled.php,如果使用continue语句不会导致此错误,请记住这
// main.php
for($x=0;$x<10;$x++)
{ include('recycled.php'); }
// recycled.php
if($x==5)
continue;
else
print $x;
有一个解决方案???,我的意思是我需要以这种方式“处理”recycled.php,如果使用continue语句不会导致此错误,请记住这是易于理解的示例代码,在实际情况下,我需要找到一种方法来继续main.php文件的循环。 作为使用continue的替代方法,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)
}
您可以在
page2.php中使用return
而不是continue
:
if ($x == 5) {
return;
}
print $x;
如果包含或需要当前脚本文件,则不需要控制
传递回调用文件。此外,如果当前脚本
如果包含文件,则指定给return的值将作为
include调用的值
试试这个!这可能对你有用
// page1.php
for($x=0;$x<10;$x++)
{ include('page2.php');
// page2.php
if($x==5)
continue;
else
print $x;
}
//page1.php
对于($x=0;$x您也可以这样做
// 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;
//page1.php
对于($x=0;$x您希望在包含的页面中继续循环:
试试这个:
for($x=0;$x<10;$x++)
{
$flag = 1;
if($flag==0){
continue;
}
include('./page2.php');
}
if($x==4)
$flag = 0;
else
print $x;
for($x=0;$xSimple不包括x=5的页面
for($x=0;$x<10;$x++)
{
if ($x != 5)
include('page2.php');
}
你的代码是错误的,因为你使用了continue not in a loop!我不知道你为什么还要包含同一个文件5次
for($x=0;$x<10;++$x)
{
//include('page2.php');
if($x!=5)
print $x;
}
for($x=0;$x)为什么不创建一个函数(甚至是另一个文件)它返回一个标志,告诉你是否必须打破循环?而且,这对我来说没有任何意义:这不是代码的可重用性,只是你试图在这里执行的错误方法continue
是for循环语句only@DonCallisto,这是一个示例代码,在实际情况下,我不能使用像YO这样的函数你建议,因为我无法访问当前变量范围((他的用法是dinamical,名称可能不同))…很难解释xD@ArunKillu,在实际代码中,是一个脚本((告诉它“main.php”))需要在main.phpy中的不同区域多次执行page1.php中的代码。你不会在循环中继续!OP的问题是,包含的页面无法继续,这是一种解决方法。我不认为这值得投反对票。我已经更新了我的答案,说明这是一种替代方法。你有一点,我不知道立即理解你在这里的建议。对不起。@MaX,事实上这是一个解决方案,但发布的代码引用了一个示例情况,在实际情况下,我真的需要使用continue语句。continue
几乎总是可以这样替换的。这只是将不需要在else中运行的所有内容包装起来的问题。我将更新以给出一个例子。老实说,我只是在介绍我的a**,以防某个超级极客(我的意思是以最有爱心的方式)带着一个例子来证明我错了。:)如果($x!=5),我会更传统地做if打印$x;
并且不要使用else块。嘿!我认为return语句可能是解决这个问题的方法,让met测试;)在这种情况下,return语句将“模拟”continue的行为,accepted!!;)pD.可以编辑您的答案,并且只保留return语句?的使用,谢谢。从某种意义上说,它可以。正如文档所述,当在包含的文件中返回时,控制权被传递回调用文件,因此您可以在从包含的文件返回后在循环中执行其他代码,而continue将立即跳到下一个iter这对我很有用。我的头撞到墙上,用break continue和各种各样的解决方法。Return成功了。我也有一个for循环和for循环中的include。谢谢!是的,它解决了问题,但是@billyonecan可以先发布它,无论如何谢谢。P:记住,这是示例代码,用于说明一种情况,真正的code“需要”以某种方式继续主文件的循环。这不是我想要的,请检查接受的答案P:
if ($x == 5)
return;
echo $x;
for($x=0;$x<10;++$x)
{
//include('page2.php');
if($x!=5)
print $x;
}