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> <p>//函数传参中的&$brr=array() &是什么意思?有什么作用?</p> <p class="answer fmt" data-id="1020000006752366"> <p>看看手册的例子你就明白啦&</p> <div class="aritcle_card"> <a class="aritcle_card_img" href="/ai/1100"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680092492385.png" alt="来画数字人直播"> </a> <div class="aritcle_card_info"> <a href="/ai/1100">来画数字人直播</a> <p>来画数字人自动化直播,无需请真人主播,即可实现24小时直播,无缝衔接各大直播平台。</p> <div class=""> <img src="/static/images/card_xiazai.png" alt="来画数字人直播"> <span>0</span> </div> </div> <a href="/ai/1100" class="aritcle_card_btn"> <span>查看详情</span> <img src="/static/images/cardxiayige-3.png" alt="来画数字人直播"> </a> </div> <p class="answer fmt" data-id="1020000006752469"> <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会重新变为空,数据不会累加!
&就是传的是地址,就是在函数中对该变量的操作都会改变外面的变量值,不然,在函数调用结束的时候,这些变量的改变就会消失,只有通过函数返回才能改变
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号