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

PHP in-depth learning variable reference counting

WBOY
Release: 2016-08-10 08:48:35
Original
1025 people have browsed it

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>
Copy after login

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>
Copy after login

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.

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template