>  기사  >  백엔드 개발  >  PHP 변수에 대한 참조 카운터 및 쓰기 중 복사

PHP 변수에 대한 참조 카운터 및 쓰기 중 복사

WBOY
WBOY원래의
2016-08-08 09:19:291080검색

우리 모두 알고 있듯이 PHP는 포인터를 지원하지 않지만 두 변수가 동시에 동일한 메모리 블록을 가리키도록 하려면 어떻게 해야 할까요? 이 문제를 해결하기 위해 PHP 커널에서는 참조 카운터를 사용합니다.
이전 블로그 게시물에서는 PHP 변수가 커널에 저장되는 방법을 소개했습니다. zval 구조의 다음 두 멤버 변수는 참조 카운터로 사용됩니다.

<code>is_ref  BOOL值,标识变量是否是引用集合。
refcount  计算指向引用集合的变量个数。
</code>

다음 PHP 코드를 보세요

<code><?php
    $a = "this is a";
?>
</code>

zval 구조의 엔터티를 zval 컨테이너라고 합니다. PHP 언어 계층에서 변수를 생성하면 이에 따라 PHP 커널에 zval 컨테이너가 생성됩니다. 위의 코드는 변수 $a를 생성하므로 PHP 커널에 zval 컨테이너가 생성되고 이 변수는 참조가 아니므로 zval 컨테이너의 is_ref는 FALSE와 같고 refcount는 1과 같습니다. 🎜> 아래 코드를 보세요

<code><?php
    $a = "this is a";
    $b=$a;
?>
</code>
위 코드는 두 개의 변수를 생성합니다

a

저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용을 포함하여 PHP 변수의 참조 카운터와 Copy-On-Write에 대해 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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