【发布时间】:2011-04-28 02:33:26
【问题描述】:
例如,我在递归函数中有一个静态变量,我希望该变量在每次递归调用中都是静态的,但是一旦递归完成,我希望重置该变量,以便下次我使用递归函数时,它会从头开始。
例如,我们有一个函数:
<?php
function someFunction() {
static $variable = null;
do stuff; change value of $variable; do stuff;
someFunction(); # The value of $variable persists through the recursion.
return ($variable);
}
?>
我们可以像这样第一次调用该函数:someFunction();,它会正常工作。然后我们再次调用它:someFunction();,但这次它以 $variable 的前一个值开始。我们如何在第一次调用函数的递归之后重置它,以便我们第二次调用它就像重新开始一样?
【问题讨论】:
-
我不确定我是否理解您的问题,但如果您不希望变量值通过递归持续存在,那么只需删除静态变量。
-
我希望它通过递归持续存在...当我通过在源代码中键入手动调用函数时,我不希望它持续存在。
-
这就是为什么我们不使用静态变量进行递归。
-
感谢所有回答的人!这些都是很好的,但不同的方式来做同样的事情。 ;)
标签: php recursion static-variables