public function digui($i)
{
if($i=='1'){
echo "*" ;
echo "
";
return ;
}else{
$this->digui($i-1);
for($j=1;$j<=$i;$j++){
echo "*" ;
}
echo "
";
}
}
调用 $this->digui(3);
结果
*
**
***
function digui2($n){
echo $n." ";
if($n>0){
$this-> digui2($n-1);
}else{
echo "";
}
echo $n." ";
}
调用 $this->digui2(3);
结果
3 2 1 0 0 1 2 3
递归函数执行 解剖 实例 (转载别人的)
看如下代码: <?php function one($num){ echo $num; two($num-1); echo $num; } function two($num){ echo $num; three($num-1); echo $num; } function three($num){ echo $num; } one(3); ?> 以上代码对test()函数进行分解操作,我们思考: 执行one(3)函数的时候,同test()函数一样,首先要输出3,然后调用two(2)函数, 注意,此时还没有输出下面的3, 接着走,执行two(2)函数,输出2,调用three(1)函数,同样,这里没有来得及输出下面的2, 执行three(1),直接输出1,不在调用其它函数, 此时,我们想刚刚的two()函数是不是还没有执行完,好,接着执行two()函数没有完成的部分,two()函数执行完之后,也就是输出下面的2,然后开始执行one()函数没有执行完的部分,也就是输出下面的3,此时所有函数执行完毕。 那么,输出结果是: 3 2 1 2 3