>  기사  >  백엔드 개발  >  재귀 함수의 무한한 분류

재귀 함수의 무한한 분류

WBOY
WBOY원래의
2016-08-30 09:36:401229검색

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>매뉴얼의 예시를 보시면 이해가 되실 겁니다&</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에도 영향을 줍니다.

무한 분류에는 정적과 유사하게 누적될 수 있는 배열이 필요합니다. &를 제거하면 $array는 반복될 때마다 다시 비어 있게 되며 데이터가 누적되지 않습니다!

&는 주소가 전달됨을 의미합니다. 즉, 함수의 변수에 대한 모든 작업은 외부 변수의 값을 변경합니다. 그렇지 않으면 함수 호출이 끝나면 이러한 변수의 변경 사항이 사라지고 변경만 가능합니다. 함수에서 복귀하여 변경됨

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.