Home > Article > Backend Development > PHP in-depth learning variable reference counting
What is the reference count of php variables? First, let’s take a look at the underlying structure of PHP variables:
<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>
When we declare a variable in the PHP program, the zend engine will instantiate a zval structure, which has four member variables. Among them, type is used to determine what type this variable is; value is used to store actual data. In fact, value is also a structure, and I will not go into details here. Today we will focus on: the usefulness of the two fields refcount_gc and is_ref_gc. Suppose there is such a piece of code:
<code><span>$a</span> = <span>123</span>; <span>$b</span> = <span>$a</span>; </code>
Due to a simple int type variable, PHP has to instantiate a structure. In the case above, in fact,
Copyright statement: This article is an original article by the blogger. Please indicate the source when reprinting.
The above introduces the reference counting of variables in PHP in-depth learning, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.