[php] PHP의 참조 할당 연산자, = &

뭐라고합니까 =&(등호-앰퍼샌드) 할당 연산자는 PHP에서 무엇입니까?

더 이상 사용되지 않습니까?



답변

더 이상 사용되지 않으며 그럴 것 같지 않습니다. 예를 들어 기존 데이터를 복사하는 대신 한 어레이 또는 객체 미러 변경 사항을 다른 어레이의 일부로 만드는 표준 방법입니다.

이것은 참조의한 할당 이라고 하는데, 매뉴얼을 인용하자면 “두 변수가 동일한 데이터를 가리키고 아무 것도 복사되지 않는다는 것을 의미합니다” .

유일하게 됩니다 으로 사용되지 않는 =&“의 결과를 할당한다 new참고로” PHP 5 혼란의 원인이 될 수 있습니다. new참조에 의해 자동으로 할당되므로 &에서는 중복 / 사용되지 $o = &new C;않지만에서는 사용되지 않습니다 $o = &$c;.


검색하기가 어렵 기 때문에 =&( 앰퍼샌드와 같음 )은 = &( 공백 앰퍼샌드와 같음 )과 으며 $x = &$y['z'];또는 $x = &$someVar( 앰퍼샌드 달러 기호 변수 이름 ) 과 같은 다른 변수로 실행되도록 작성되는 경우가 많습니다 . 문서에서 단순화 된 예 :

$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4

다음 은 PHP 매뉴얼의 Assign By Reference대한 자세한 섹션에 대한 편리한 링크 입니다. 이 페이지는 참고 문헌 시리즈의 일부입니다. 전체 시리즈를 읽는 데 잠시 시간을 할애 할 가치가 있습니다.


답변

두 개의 다른 연산자입니다. =아시다시피 할당입니다. 그리고 &변수는 값이 아닌 참조로 액세스해야 함을 의미합니다.


답변

$x = &$y['z'];

$y['z']존재하지 않는 경우 생성 하고으로 설정 하는 효과도 있습니다 null.

이렇게하면 읽고 싶었던 오류 메시지를 방지 할 수 있습니다. 아직 문서를 찾지 못했습니다. 내가 아는 한 5.3에서 새로운 것 같습니다.


답변