>  기사  >  백엔드 개발  >  关于php递归函数的问题

关于php递归函数的问题

WBOY
WBOY원래의
2016-06-20 12:51:261093검색

<?phpfunction 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呢?


回复讨论(解决方案)

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

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);

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 时间与日期다음 기사:PHP 静态分析器:phan