이 기사에서는 PHP 참조 변수가 무엇인지 소개합니다. PHP에서 참조를 구현하는 방법에는 특정 참조 값이 있습니다. 도움이 필요한 친구가 참조할 수 있기를 바랍니다.
개념:
참조: PHP에서는 서로 다른 변수 이름이 동일한 변수의 내용에 액세스하며, 이는 참조가 되며 앰퍼샌드로 표시됩니다.
작동 원리 인용:
(1) 메모리 내 PHP 저장 원리:
<?php $a = range(1, 100); $b = $a; ?>
PHP에는 COW(Copy On Write) 메커니즘이 있으므로
a; 메모리에서는 다음과 같이 표현될 수 있습니다.
a의 저장소가 다시 열리는 경우에만 이것이 PHP의 COW 메커니즘입니다. 즉,
<?php $a = range(1, 100); $b = $a; $a = range(1, 100); ?>
이것은 변경되지 않았지만
a입니다. 이를 증명하기 위해 PHP 함수 memory_get_usage()를 사용하여 메모리 사용량을 확인할 수 있습니다.
(2) PHP에서의 참조 구현 원리
<?php $a = range(1, 100); $b = &$a; ?>
이때 참조(&)가 있기 때문에 처음에 할당된 메모리는 메모리에 있고, 일 때는 변경되지 않습니다.
그리고 이때 $a의 값이 변경되면:
<?php $a = range(1, 100); memory_get_usage(); $b = &$a; memory_get_usage(); $a = range(1,1000); memory_get_usage();?>참조에서 이 주소를
에 할당하므로 메모리에서 공백이 다시 열리지 않는 것을 볼 수 있습니다. 영원히 b이므로
a 및 $b의 값을 변경하면 변경됩니다. memory_get_usage() 함수를 사용하여 이를 볼 수도 있습니다.
(3) PHP의 zval 구조(변수 컨테이너) PHP의 변수는 zval 구조에 저장되며 참조도 zval 구조의 저장소를 보면 볼 수 있다는 것을 알고 있습니다.<?php $a = range(1, 100); xdebug_debug_zval('a'); $b = &$a; ?>xdebug_debug_zval() 함수를 사용하려면 PHP xdebug 확장 프로그램을 설치해야 합니다. 관련 기사 추천:
php7과 php5의 차이점은 무엇인가요? php5와 php7의 비교
위 내용은 PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!