将php -a
输入互动模式,无论是在Apache中执行。
function recursion(){
static $count = 0;
$count++;
echo $count." ";
if($count < 10){
recursion();
}
echo $count." ";
$count--;
}
recursion();
1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1
退出条件是if($count < 10){
,为什么结果不是
1 2 3 4 5 6 7 8 9 10 10?
为什么$count--
被执行9次?
答案 0 :(得分:0)
添加返回以停止进一步的功能执行
function recursion(){
static $count = 0;
$count++;
echo $count." ";
if($count < 10){
recursion();
return;
}
echo $count." ";
$count--;
}
输出:
1 2 3 4 5 6 7 8 9 10 10
答案 1 :(得分:0)
如果您希望递归后不减少1到10:
<?php
function recursion(){
static $count = 0;
$count++;
echo $count." ";
if ($count < 10) {
recursion();
}
}
为什么会这样?
因为它会循环循环 10 次,每次递增,直到到达
echo $count." ";
$count--;
它会停止嵌套,然后每次调用上述方法都会减小该值。
0-1
+2
+3
+4
+5
+6
+7
+8
+9
+10
<--------+
12345678910
如果您按@VitalijsG中所示返回,则会得到1 2 3 4 5 6 7 8 9 10 10
,因为它循环10次,但在除第10个循环之外的所有循环中返回,所以它只会命中:
echo $count." ";
$count--;
一次...