搜尋
首頁後端開發PHP問題手把手教你學php遞歸函數

手把手教你學php遞歸函數

Mar 23, 2021 am 09:45 AM
php遞迴函數

遞歸就是一個函數在它的函數體內呼叫它自己。執行遞歸函數將重複呼叫其自身,每呼叫一次就進入新的一層。遞歸函數必須有結束條件。下面跟著小編一起來學習遞歸吧。

手把手教你學php遞歸函數

遞迴思想就是,把一個相對複雜的問題(原始問題)轉化為一個個與原問題相似的規模較小的問題(子問題)來解決,等一個個小問題解決了,最終的大問題自然就解決了。遞歸方法只需少量的程式就可描述出解題過程所需的多次重複計算,大大減少程式的程式碼量。當然,遞歸函數也不完美,有一定的缺點,那就是遞迴函數的運作效率不高。
在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 &#39;数列第 10 位是:&#39;.demo(10);//数列第 10 位是:55
?>

這個例子是不是有點眼熟,這就是斐波那契數列,我們計算斐波那契數列的時候,如果使用其他方法相較而言還是有一定難度的,但是使用遞迴函數,效率就高很多了。

推薦教學:《PHP影片教學

#

以上是手把手教你學php遞歸函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版

SublimeText3 Mac版

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

Safe Exam Browser

Safe Exam Browser

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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