Home  >  Article  >  Backend Development  >  PHP in-depth learning variable reference counting

PHP in-depth learning variable reference counting

WBOY
WBOYOriginal
2016-08-10 08:48:351003browse

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, a is the same as

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.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn