php递归函数的理解
public function digui($i)
{
if($i=='1'){
echo "*" ;
echo "<br>";
return ;
}else{
$this->digui($i-1);
for($j=1;$j<=$i;$j++){
echo "*" ;
}
echo "<br>";
}
{
if($i=='1'){
echo "*" ;
echo "<br>";
return ;
}else{
$this->digui($i-1);
for($j=1;$j<=$i;$j++){
echo "*" ;
}
echo "<br>";
}
}
调用 $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