php - 如何在不调用递归循环函数的情况下将值传递给变量并返回它?
问题描述
function test_loop($x_values,$x, $y)
{
$x = $x + 1;
if($x < 4)
{
//I want to add $x value into $x_values variable, eg : $x_values = $x_values . $x;
//but $x_values = $x_values . $x; is not working, so I force to use $x_values = test_loop($x_values . $x . "##", $x, $y);
$x_values = test_loop($x_values . $x . "##", $x, $y);
}
//loop again if y is not = 3;
$y = $y + 1;
if($y < 3)
{
echo "kkk" . $y . "<br/>";
$x_values = test_loop($x_values . $x . "##", $x, $y);
}else{
echo "---------------------<br/>";
}
return $x_values;
}
function abc(){
$bababa = test_loop(0,1,0);
echo $bababa;
}
abc();
输出 :
kkk1
kkk2
---------------------
kkk1
kkk2
---------------------
kkk1
kkk2
---------------------
kkk2
---------------------
02##3##4##5##3##4##2##3##4##3##
如何使输出变为:
kkk1
kkk2
---------------------
02##3##
解决方案
为什么不尝试创建$x_values
一个数组,并将值$x_values
作为数组项添加,$x_values[] = $x;
然后当你准备好时,只需将这些值implode()到一个字符串中。像这样:
function test_loop($x_values,$x, $y)
{
$x = $x + 1;
if($x < 4)
{
$x_values[] = $x;
}
//loop again if y is not = 3;
$y = $y + 1;
if($y < 3)
{
echo "kkk" . $y . "<br/>";
$x_values[] = $x;
}else{
echo "---------------------<br/>";
}
return implode($x_values);
}
只需确保您$x_values
最初也作为数组传递:
function abc(){
$bababa = test_loop([0],1,0);
echo $bababa;
}
推荐阅读
- erlang - mnesia 是否处理分页?
- sass - Bootstrap4 更改断点
- java - 了解为什么 Java 模式匹配缓冲 .java 文件中的错误文本?
- javascript - Angular 6 - ServiceWorker 不请求压缩内容
- python - 在热图网格中绘制具有 4 个参数的函数
- reactjs - React 和 ApolloClient:网络错误:forward(...).subscribe 不是函数
- php - PHP中的表单验证问题
- javascript - 谷歌应用脚本数组问题
- javascript - Vue Router this.$router.push 对方法不起作用
- r - 如何在R中绘制范围条?