1. 递归函数,是为了累积数据,比如累积数组。
2. 把累积的数组放在一个静态变量中。
3. 累积完成后,返回累积的结果,然后把静态变量置空,作下一次从新累积。
4. 问题在于,每次累积完成以后,把累积的结果返回时,总是得到空值,没想明白问题出在哪里。
代码:
public function test_a(){
header("content-type:text/html; charset=utf-8");
$k = 5;
$b = 'bbb' . $this->test_b($k);
echo $b;
}
public function test_b(&$k){
static $str = '';
static $i = 0;
if(empty($k)){
$ret = $str;
$str = '';
$i = 0;
echo '完成累积<br />';
return $ret;
}else{
$str .= 'a';
$k--;
echo $str."<br />";
$this->test_b($k);
}
}
======
返回的结果:
a
aa
aaa
aaaa
aaaaa
bbb
$b总是为原始值,为bbb。
期望$b的值为:bbbaaaaa,没有成功。
最佳答案