php遞迴函式名字,PHP實現遞迴的三種方法

2021-10-25 21:34:39 字數 1111 閱讀 2875

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

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

一、利用引用做引數

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

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

function recursion(&$data = , $i = 0)

if ($i < 10) {

$data = $i;

$i++;

$this->recursion($data, $i);

return $data;

// 呼叫

$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]

二、利用全域性變數

global 在函式內申明變數不過是外部變數的同名引用。變數的作用範圍仍然在本函式範圍內。改變這些變數的值,外部同名變數的值自然也改變了。

function recursion($data = , $i = 0)

global $data;

if ($i < 10) {

$data = $i;

$i++;

$this->recursion($data, $i);

return $data;

// 呼叫

$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]

三、利用靜態變數

靜態變數只在第一次呼叫時初始化。僅在區域性函式域中存在,但當程式執行離開此作用域時,其值並不丟失。

function recursion($i = 0)

static $data = ;

if ($i < 10) {

$data = $i;

$i++;

$this->recursion($i);

return $data;

// 呼叫

$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]

php函式名命名規範,php函式命名規範

php函式命名規範 1 函式的名稱應該提示出它的功能 2 函式名稱以字母或下劃線開頭 3 函式名稱不能以數字開頭。函式是通過呼叫函式來執行的,我們可以在頁面的任何位置呼叫函式。函式命名規範 函式名稱以字母或下劃線開頭 不能以數字開頭 函式是通過呼叫函式來執行的。我們可以在頁面的任何位置呼叫函式。為了...

php 遞迴函式

array walk 有個原生遞迴函式 array walk recursive arr,function words 但是 array map 卻沒有對應的遞迴函式 array map recursive,我們可以自定義乙個 function array map recursive filter,...

PHP遞迴函式

遞迴函式是指直接或間接的呼叫函式自身的函式。遞迴函式的條件 示例 function demo a 1 次執行 a demo a demo 效果如圖 這個很好理解把,首先 a 1條件成立執行真區間,列印一次,a自增後作為實參傳入,呼叫自身,此時 a 2,條件成立,再次列印。再自增再傳入,a 3,條件依...