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引擎会实例化一个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都要实例化一个结构体出来,像上面这种情况,其实
版权声明:本文为博主原创文章,转载请注明出处。
以上就介绍了php深入学习之变量的引用计数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。