>  기사  >  백엔드 개발  >  PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법

PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법

不言
不言원래의
2018-08-06 15:25:324573검색

이 기사에서는 PHP 참조 변수가 무엇인지 소개합니다. PHP에서 참조를 구현하는 방법에는 특정 참조 값이 있습니다. 도움이 필요한 친구가 참조할 수 있기를 바랍니다.

개념:

참조: PHP에서는 서로 다른 변수 이름이 동일한 변수의 내용에 액세스하며, 이는 참조가 되며 앰퍼샌드로 표시됩니다.

작동 원리 인용:

(1) 메모리 내 PHP 저장 원리:

<?php
    $a = range(1, 100);    $b = $a;
 ?>

PHP에는 COW(Copy On Write) 메커니즘이 있으므로

a; 메모리에서는 다음과 같이 표현될 수 있습니다.
PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법

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 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법

<?php
    $a = range(1, 100);
    memory_get_usage();    
    $b = &$a;
    memory_get_usage();    
    $a = range(1,1000);
    memory_get_usage();?>

참조에서 이 주소를

PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법
에 할당하므로 메모리에서 공백이 다시 열리지 않는 것을 볼 수 있습니다. 영원히 b이므로

a 및 $b의 값을 변경하면 변경됩니다. memory_get_usage() 함수를 사용하여 이를 볼 수도 있습니다.

(3) PHP의 zval 구조(변수 컨테이너)

PHP의 변수는 zval 구조에 저장되며 참조도 zval 구조의 저장소를 보면 볼 수 있다는 것을 알고 있습니다.

<?php
    $a = range(1, 100);
    xdebug_debug_zval(&#39;a&#39;);    
    $b = &$a;
?>

xdebug_debug_zval() 함수를 사용하려면 PHP xdebug 확장 프로그램을 설치해야 합니다.

관련 기사 추천: ​​

php7과 php5의 차이점은 무엇인가요? php5와 php7의 비교

PHP의 strtotime() 함수 원리 설명

위 내용은 PHP 참조 변수란 무엇입니까? PHP에서 참조를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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