遞歸函數的無限極分類
function fun($pid=0,&$brr=array()){//為什麼去掉&就不行了?
<code>$sql="select * from wuxianji where pid=$pid"; $rs=mysql_query($sql); while($arr=mysql_fetch_assoc($rs)){ $brr[]=$arr; fun($pid=$arr['id'],$brr); } return $brr;</code>
}
$brr=fun();
echo '
';print_r($brr);
die();//函數傳參中的&$brr=array() &是什麼意思?有什麼作用?
回覆內容:
function fun($pid=0,&$brr=array()){//為什麼去掉&就不行了?
<code>$sql="select * from wuxianji where pid=$pid"; $rs=mysql_query($sql); while($arr=mysql_fetch_assoc($rs)){ $brr[]=$arr; fun($pid=$arr['id'],$brr); } return $brr;</code>登入後複製}
$brr=fun();
echo '';print_r($brr);<br>die(); <p>//函數傳參中的&$brr=array() &是什麼意思?有什麼作用? </p> <p class="answer fmt" data-id="1020000006752366"> </p><p>看看手冊的例子你就明白啦&</p> <p class="answer fmt" data-id="1020000006752469"> </p><p>因為&是取引用,當使用了&符號之後,你在函數裡面對參數的修改也會帶到函數外面。而沒有&符號,你在函數裡面對參數的修改,隨著函數結束就結束了。 </p> <pre class="brush:php;toolbar:false"><code>function a1($a) { $a = 20; } function a2(&$a) { $a = 20; } $a = 10; a1($a); var_dump($a); a2($a); var_dump($a);</code>登入後複製就像上面的程式碼一樣,輸出依序是10, 20。因為a2使用了&符號,所以在a2裡面對$a的修改也影響到了實際傳給a2的$a。
無限極分類需要有一個可以累積的數組,類似static,如果去掉&,每次遞歸的$array會重新變成空,資料不會累積!
&就是傳的是位址,就是在函數中對該變數的操作都會改變外面的變數值,不然,在函數呼叫結束的時候,這些變數的改變就會消失,只有透過函數回傳才能改變

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫
