遞歸就是一個函數在它的函數體內呼叫它自己。執行遞歸函數將重複呼叫其自身,每呼叫一次就進入新的一層。遞歸函數必須有結束條件。下面跟著小編一起來學習遞歸吧。
遞迴思想就是,把一個相對複雜的問題(原始問題)轉化為一個個與原問題相似的規模較小的問題(子問題)來解決,等一個個小問題解決了,最終的大問題自然就解決了。遞歸方法只需少量的程式就可描述出解題過程所需的多次重複計算,大大減少程式的程式碼量。當然,遞歸函數也不完美,有一定的缺點,那就是遞迴函數的運作效率不高。
在PHP 中遞歸層數也不是沒有限制的,這與程式的記憶體限額有關,PHP5
允許一個程式使用128M
的內存,因此當遞歸層數過大導致128M記憶體耗盡時,程式就會產生一個致命錯誤並退出。 PHP7
允許使用256M
的記憶體。
遞歸函數就是在函數內部自己呼叫自己。執行遞歸函數將重複呼叫其自身,每呼叫一次就進入新的一層。遞歸函數必須有結束條件。當函數在一直遞推,直到遇到牆後返回,這個牆就是結束條件。所以遞歸要有兩個要素,結束條件與遞推關係。
註:函數在被呼叫執行的過程中會在記憶體裡面分配空間用於儲存臨時數據,那麼函數在執行過程中預設之間是沒有聯繫的(除了靜態變數,按引用傳,全域變數)。裡面的變數預設都是局部變量,彼此之間沒有影響。讓我們來看一個例子加深印象:
<?php function demo($num){ // if($num == 1 || $num == 2){ return 1; }else{ return demo($num - 1) + demo($num - 2); } } echo '数列第 10 位是:'.demo(10);//数列第 10 位是:55 ?>
這個例子是不是有點眼熟,這就是斐波那契數列,我們計算斐波那契數列的時候,如果使用其他方法相較而言還是有一定難度的,但是使用遞迴函數,效率就高很多了。
推薦教學:《PHP影片教學》
#以上是手把手教你學php遞歸函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。