PHP 변수의 참조 횟수는 어떻게 되나요? 먼저, PHP 변수의 기본 구조를 살펴보겠습니다.
<code>typedef <span>struct</span> _zval_struct zval; <span>struct</span> _zval_struct { zvalue_value <span>value</span>; <span>//存放value</span> zend_uint refcount__gc; <span>//引用计数</span> zend_uchar type; <span>//判断类型</span> zend_uchar is_ref__gc; <span>//是否被引用</span> }; </code>
PHP 프로그램에서 변수를 선언하면 zend 엔진은 4개의 멤버 변수가 있는 zval 구조를 인스턴스화합니다. 그 중 type은 이 변수가 어떤 유형인지 결정하는 데 사용되며 value는 실제 데이터를 저장하는 데 사용됩니다. 실제로 value도 구조이므로 여기서는 자세히 설명하지 않겠습니다. 오늘은 refcount_gc와 is_ref_gc 두 필드의 사용에 중점을 둘 것입니다. 다음과 같은 코드가 있다고 가정해 보겠습니다.
<code><span>$a</span> = <span>123</span>; <span>$b</span> = <span>$a</span>; </code>
단순한 int 유형 변수로 인해 PHP는 위와 같은 경우 실제로