Php 如何等待完成递归循环,然后只回显?
代码在回显“gula”之前调用test_loop()函数,因此假定它回显“gula”失败。如何使输出变成如下所示:Php 如何等待完成递归循环,然后只回显?,php,Php,代码在回显“gula”之前调用test_loop()函数,因此假定它回显“gula”失败。如何使输出变成如下所示: gula gula gula gula gula 2#3#4#5#6# 更新: 我试图移动echo并返回到else{}语句中,正如@joelhager所建议的那样,结果返回值没有输出 gula 2#3#4#5#6# 功能测试\u循环($x,$y) { 静态$x_值=数组(); $x=$x+1; 如果($x
gula
gula
gula
gula
gula
2#3#4#5#6#
更新:
我试图移动echo并返回到else{}语句中,正如@joelhager所建议的那样,结果返回值没有输出
gula
2#3#4#5#6#
功能测试\u循环($x,$y)
{
静态$x_值=数组();
$x=$x+1;
如果($x<10)
{
$x#u值[]=$x.“#”;//将项目2、3、4插入数组中
}
//如果y不等于3,则再次循环;
$y=$y+1;
如果($y<5)
{
测试_循环($x,$y);
}否则{
回声“古拉”;
返回$x_值;
}
}
您应该在对测试循环的递归调用中添加一个return语句
function test_loop($x, $y)
{
static $x_values = array();
$x = $x + 1;
if($x < 10)
{
$x_values[] = $x."#"; // insert item 2#,3#,4# into array
}
//loop again if y is not = 3;
$y = $y + 1;
if($y < 5)
{
test_loop($x, $y);
}else{
echo "gula</br>";
return $x_values;
}
}
if($y<5)
{
返回测试循环($x,$y);
}
这样,代码执行返回到test\u循环。您应该在递归调用
test\u循环时添加一个return语句
function test_loop($x, $y)
{
static $x_values = array();
$x = $x + 1;
if($x < 10)
{
$x_values[] = $x."#"; // insert item 2#,3#,4# into array
}
//loop again if y is not = 3;
$y = $y + 1;
if($y < 5)
{
test_loop($x, $y);
}else{
echo "gula</br>";
return $x_values;
}
}
if($y<5)
{
返回测试循环($x,$y);
}
这样,代码执行返回到test_loop。每次调用test_loop()
时,它都会打印gula
,因此每添加到数组中的n
就有一行。每次运行gula
时,它都会回显,因为它没有包装在任何条件中。它只是选择是推送还是重新运行,但回声出现在函数的每次迭代中。如果您希望它是最终的,您可以在最终输出之前放置一个else
,并在那里进行回音。因为如果($y<5){test_loop($x,$y);}在它打印gula之前被执行,假设它没有机会打印gula,那么您必须从中返回。添加一个return
,看看会发生什么。每次调用test\u loop()
时,它都会打印gula
,因此添加到数组中的每个n
都会得到一行。每次运行gula
时,它都会回显,因为它没有包装在任何条件中。它只是选择是推送还是重新运行,但回声出现在函数的每次迭代中。如果您希望它是最终的,您可以在最终输出之前放置一个else
,并在那里进行回音。因为如果($y<5){test_loop($x,$y);}在它打印gula之前被执行,假设它没有机会打印gula,那么您必须从中返回。添加一个返回值
,看看会发生什么。完美。你是救生员。非常感谢,太好了。你是救生员。非常感谢你。
if($y < 5)
{
return test_loop($x, $y);
}