? ? ? 遞歸函數(shù)為自調(diào)用函數(shù)坷虑,在函數(shù)體內(nèi)直接或間接自己調(diào)用自己楞陷,但需要設(shè)置自調(diào)用的條件凳寺,若滿足條件手报,則調(diào)用函數(shù)本身,若不滿足則終止本函數(shù)的自調(diào)用英支,然后把目前流程的主控權(quán)交回給上一層函數(shù)來執(zhí)行佩憾。
function test($no){
echo $no;
if($no > 0){
test($no-1);
}else{
echo '<--->';
}
echo $no;
}
test(2);
第一步,執(zhí)行test(2)干花,echo 2妄帘,然后因為2>0,執(zhí)行test(1)池凄,(注意:后面還有沒來得及執(zhí)行的echo 2)
第二步抡驼,執(zhí)行test(1),echo 1肿仑,然后因為1>0致盟,執(zhí)行test(0),(注意:同樣后面還有沒來得及執(zhí)行的 echo 1)
第三步尤慰,執(zhí)行test(0)馏锡,echo 0,此時0>0的條件不滿足割择,不在執(zhí)行test()函數(shù)眷篇,而是echo “<-->”,并且執(zhí)行后面的 echo0
此時函數(shù)已經(jīng)不再調(diào)用自己荔泳,開始將流程的主控權(quán)交回給上一層函數(shù)來執(zhí)行蕉饼,也就是開始執(zhí)行剛剛所有test()函數(shù)沒來得及輸出的最后一個echo虐杯,0的一層是1也就是輸出11的上一層是2 也就是輸出22沒有山一層所以呢輸出的內(nèi)容就是2 1 0<-->0 1 2