우리 모두 알고 있듯이 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>위 코드는 두 개의 변수를 생성합니다