关于php递归函数的问题

qq599006169 2015-08-04 07:09:47

<?php
function draw($total,$line=1,$result="a1"){
echo "<script>alert('$total,$line')</script>";
if($line>$total){
return;
}
else{
$line++;
//echo $result;
echo "<script>alert('draw1($total,$line,$result)')</script>";
draw($total,$line,$result);
echo "<script>alert('draw2($total,$line,$result)')</script>";
}
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呢?
...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq599006169 2015-08-04
  • 打赏
  • 举报
回复
谢谢,我想我递归的原理还没弄明白,再去找下资料吧
xuzuning 2015-08-04
  • 打赏
  • 举报
回复
没有原因,因为他并没有变
function draw($total,$line=1,$result="a1"){
    echo "<script>alert('$total,$line')</script>";
    if($line>$total){
        return;
    }
    else{
        $line++;
        //echo $result;
        echo "<script>alert('draw1($total,$line,$result)')</script>";
echo "递归前 line = $line\n";
        draw($total,$line,$result);
echo "递归后 line = $line\n";
        echo "<script>alert('draw2($total,$line,$result)')</script>";
    }
    echo $result;
}
draw(3);

21,892

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧