一、利用參考做引數
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]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/13972.html
標籤:PHP
