這篇文章將為大家詳細講解有關php遞歸函數(shù)是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)主營隴西網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶App定制開發(fā),隴西h5小程序開發(fā)搭建,隴西網(wǎng)站營銷推廣歡迎隴西等地區(qū)企業(yè)咨詢
遞歸就是一個函數(shù)在它的函數(shù)體內調用它自身。執(zhí)行遞歸函數(shù)將反復調用其自身,每調用一次就進入新的一層。遞歸函數(shù)必須有結束條件。 下面跟著小編一起來學習遞歸吧。
遞歸思想就是,把一個相對復雜的問題(原始問題)轉化為一個個與原問題相似的規(guī)模較小的問題(子問題)來解決,等一個個小問題解決了,最終的大問題自然就解決了。遞歸方法只需少量的程序就可描述出解題過程所需要的多次重復計算,大大減少程序的代碼量。當然,遞歸函數(shù)也不完美,有一定的缺點,那就是遞歸函數(shù)的運行效率不高。
在 PHP 中遞歸層數(shù)也不是沒有限制的,這與程序的內存限額有關,PHP5 允許一個程序使用 128M 的內存,因此當遞歸層數(shù)過大導致 128M 內存耗盡時,程序就會產(chǎn)生一個致命錯誤并退出。PHP7 允許使用 256M 的內存。
遞歸函數(shù)就是在函數(shù)內部自己調用自己。執(zhí)行遞歸函數(shù)將反復調用其自身,每調用一次就進入新的一層。遞歸函數(shù)必須有結束條件。當函數(shù)在一直遞推,直到遇到墻后返回,這個墻就是結束條件。所以遞歸要有兩個要素,結束條件與遞推關系。
注:函數(shù)在被調用執(zhí)行的過程中會在內存里面分配空間用于存儲臨時數(shù)據(jù),那么函數(shù)在執(zhí)行過程中默認之間是沒有聯(lián)系的(除了靜態(tài)變量,按引用傳,全局變量)。里面的變量默認都是局部變量,相互之間沒有影響。我們來看一個例子加深印象:
這個例子是不是有點眼熟,這就是斐波那契數(shù)列,我們計算斐波那契數(shù)列的時候,如果使用其他方法相較而言還是有一定難度的,但是使用遞歸函數(shù),效率就高了很多。
關于“php遞歸函數(shù)是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。