2012-06-23 6 views
0
<?php 
    /* Assignment of array variables */ 
    $arr = array(1); 
    $a =& $arr[0]; //$a and $arr[0] are in the same reference set 
    $arr2 = $arr; //not an assignment-by-reference! 
    $arr2[0]++; 
?> 

출력은 $a == 2, $arr == array(2)입니다. 참고가 아니더라도 $arr의 내용이 변경되었습니다!배열 및 참조

아무도이를 알 수 있습니까?

답변

0

PHP에서 모든 배열 복사는 참조 용입니다. 얕은 복사본을 원하면 명시 적으로 무언가를 복사해야합니다.

따라서 $arr2을 참조로 지정하지 않아도 $arr은 배열이므로 둘 다 동일한 배열 객체를 참조하게됩니다.