遞迴演算法的實現方法是有多種的,如通過「靜態變數」、「全域性變數」、「引用傳參」的方式:
靜態變數的方法:
<?phpfunction
call()
}call();
輸出:
0 1 2 3 4 5 6 7 8 9
利用static定義靜態變數來實現遞迴排序。如上我們定義了乙個call方法和靜態變數$i,如果我們不給$i變數新增判斷,而是直接執行,就會出現死迴圈。所以我們這裡新增了乙個if條件判斷語句。最後迴圈呼叫自身方法
全域性變數global實現遞迴:
1<?php
2$i=1;
3function
call()10}
11 call();
輸出:
12345678910
如果沒有在方法體內用global 定義$i,則會出現$i未被宣告的錯誤。並且需要注意,在函式體內定義的global變數,函式體內可以使用,在函式體外定義的global變數不能在函式體內使用。
注:global的作用是定義全域性變數,但是這個全域性變數不是應用於整個**,而是應用於當前頁面,包括include或require的所有檔案。遞迴即呼叫自身的函式。在使用遞迴時,我們需要在函式中定義退出條件,否則它將進入無限迴圈(這裡我們通過if語句定義了退出條件)。
引用傳參的方式實現遞迴演算法:
1<?php
2function test($a=0,&$result=array
())8
echo
$a."";
9return
$result;10
}11var_dump(test());
php的引用,簡單來說就是在變數或者函式、物件等前面加上&符號(也就是引用符號),這裡就需要了解下php引用傳遞的概念,即可以將乙個變數通過引用傳遞給函式,這樣該函式就可以修改其引數的值。
在php 中引用的意思就是不同的名字訪問同乙個變數內容。
PHP演算法 遞迴演算法
遞迴函式在日常專案中有很廣泛的用途,例如寫樹結構 遍歷目錄等,今天我們用乙個簡單的遞迴demo來求斐波那契數列,並用 釋它執行的過程。0 1 1 2 3 5 8 13 21 34 function demo n elseif n 1 else return number echo demo 4 輸出...
PHP遞迴演算法
在php開發過程中,遞迴演算法通常用於無限極分類。遞迴演算法的實現方法是有多種的,如通過 靜態變數 全域性變數 引用傳參 的方式。1.靜態變數的方法 靜態變數只存在於函式作用域內,一般的函式內變數在函式結束後會釋放,比如區域性變數,但是靜態變數卻不會。就是說,下次再呼叫這個函式的時候,該變數的值會保...
php遞迴演算法
我們都知道,程式設計有兩大難點 指標和遞迴。這裡說一說遞迴。一 什麼是遞迴函式呢?遞迴函式就是直接或間接的自己呼叫自己的函式。一句話就是 自己呼叫自己 二 什麼時候使用遞迴呢?當需要不斷重複某一方法時,也就是有某種共同的規律,有如 以此類推 重複多次 等情景時。巧用遞演算法能減少大量 三 簡單理解遞...