php無極分類非遞迴 PHP實現遞迴有幾種方法呢?

2021-10-14 06:42:24 字數 892 閱讀 7660

遞迴函式是我們常用到的一類函式,最基本的特點是函式自身呼叫自身,但必須在呼叫自身前有條件判斷,否則會無限呼叫下去。

一般來說,遞迴函式可利用全域性變數,引用,靜態變數,但需對他們的作用範圍有所理解。遞迴函式也是解決無限級分類的乙個很好的技巧。

一、利用引用做引數

php 的引用允許用兩個變數來指向同乙個內容,例如 $a = &$b; 這意味著 $a 和 $b 指向了同乙個變數。

如下例子,因為 $data 使用了引用傳遞,所以資料會一直累加。

function recursion(&$data = , $i = 0) return $data;}// 呼叫$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]
二、利用全域性變數global 在函式內申明變數不過是外部變數的同名引用。變數的作用範圍仍然在本函式範圍內。改變這些變數的值,外部同名變數的值自然也改變了。

function recursion($data = , $i = 0) return $data;}// 呼叫$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]
三、利用靜態變數靜態變數只在第一次呼叫時初始化。僅在區域性函式域中存在,但當程式執行離開此作用域時,其值並不丟失。

function recursion($i = 0) return $data;}// 呼叫$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]

PHP利用遞迴實現無極限分類

所謂的無極限分類就是乙個類可以分成多個子類,然後乙個子類又可以分出另外多個子類。首先建立乙個資料庫 create table if not exists category id int 10 unsigned not null auto increment,pid int 10 name varch...

PHP無限級分類實現(遞迴 非遞迴)

created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...

PHP無限級分類實現(遞迴 非遞迴)

created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...