";	if($line>$total){        return;    }    else{        $line++;        //echo $result;        echo "";        draw($total,$line,$result);        echo "";	}	echo $result;}draw(3);?>
登录后复制

语句中执行函数draw(3),当运行到if($line>$total){return;}echo出来三条信息draw2(3,4,a1)-->draw2(3,3,a1)-->draw2(3,2,a1)然后结束,请问是什么 原因使$line在return发生后,依次减1呢?


回复讨论(解决方案)

没有原因,因为他并没有变

function draw($total,$line=1,$result="a1"){    echo "";    if($line>$total){        return;    }    else{        $line++;        //echo $result;        echo "";echo "递归前 line = $line\n";        draw($total,$line,$result);echo "递归后 line = $line\n";        echo "";    }    echo $result;}draw(3);
登录后复制

谢谢,我想我递归的原理还没弄明白,再去找下资料吧

09-11 06:25