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는 반복될 때마다 다시 비어 있게 되며 데이터가 누적되지 않습니다!
&는 주소가 전달됨을 의미합니다. 즉, 함수의 변수에 대한 모든 작업은 외부 변수의 값을 변경합니다. 그렇지 않으면 함수 호출이 끝나면 이러한 변수의 변경 사항이 사라지고 변경만 가능합니다. 함수에서 복귀하여 변경됨