PHP遞迴演算法

2021-09-19 05:22:31 字數 978 閱讀 1480

在php開發過程中,遞迴演算法通常用於無限極分類。遞迴演算法的實現方法是有多種的,如通過「靜態變數」、「全域性變數」、「引用傳參」的方式。

1.靜態變數的方法

靜態變數只存在於函式作用域內,一般的函式內變數在函式結束後會釋放,比如區域性變數,但是靜態變數卻不會。就是說,下次再呼叫這個函式的時候,該變數的值會保留下來。

只要在變數前加上關鍵字static,該變數就成為靜態變數了.

<?php

function call()

}call();

輸出:0 1 2 3 4 5 6 7 8 9

2.全域性變數方法

如果我們沒有在方法體內用global 定義$i,則會出現$i未被宣告的錯誤。並且需要注意,在函式體內定義的global變數,函式體內可以使用,在函式體外定義的global變數不能在函式體內使用。

注:global的作用是定義全域性變數,但是這個全域性變數不是應用於整個**,而是應用於當前頁面,包括include或require的所有檔案。遞迴即呼叫自身的函式。在使用遞迴時,我們需要在函式中定義退出條件,否則它將進入無限迴圈(這裡我們通過if語句定義了退出條件)。

<?php

$i=1;

function call()

}call();

輸出:12345678910

3.引用傳參方法

php的引用,簡單來說就是在變數或者函式、物件等前面加上&符號(也就是引用符號),這裡就需要了解下php引用傳遞的概念,即可以將乙個變數通過引用傳遞給函式,這樣該函式就可以修改其引數的值。

<?php

function test($a=0,&$result=array())

echo $a."";

return $result;

}var_dump(test());

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遞迴演算法總結

遞迴演算法的實現方法是有多種的,如通過 靜態變數 全域性變數 引用傳參 的方式 靜態變數的方法 function call call 輸出 0 1 2 3 4 5 6 7 8 9 利用static定義靜態變數來實現遞迴排序。如上我們定義了乙個call方法和靜態變數 i,如果我們不給 i變數新增判斷,...