【发布时间】:2018-12-30 22:50:45
【问题描述】:
我有以下问题:
递归的counterFunction 不是返回最后一个值,而是它似乎在倒计时我的$counter 变量,然后在每种情况下都返回1。
不幸的是,当我将返回值放在if 或else 中时,它也不起作用。
我非常感谢对此的每一个答案。提前致谢。
$counterReceive = counterFunction(0);
echo "CounterReceive: ".$counterReceive."</br>";
function counterFunction($counter)
{
if ($counter < 3) {
$counter++;
echo "counter in recursive loop: ".$counter."</br>";
counterFunction($counter);
}
echo "end condition reached.</br>";
echo "End Counter: ".$counter."</br>";
return $counter;
}
输出:
counter in recursive loop: 1
counter in recursive loop: 2
counter in recursive loop: 3
end condition reached.
End Counter: 3
end condition reached.
End Counter: 2
end condition reached.
End Counter: 1
CounterReceive: 1
【问题讨论】:
-
正确缩进代码使其更具可读性...
-
想象对
counterFunction($counter)的内部调用正在调用任何其他函数,因为从内部调用该函数并不重要。这可以完美地解释这种行为,不是吗? -
有什么问题?一切正常吗?
-
您的问题不是问题。你能解释一下你期望你的输出是什么样的吗?
-
@devon:谢谢你的提示!