PHP7的垃圾回收机制与PHP5相比有哪些显著差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计764个文字,预计阅读时间需要4分钟。
PHP5和PHP7的垃圾回收机制都是利用引用计数。所谓引用计数,是指每个变量都有一个引用计数器,用来记录有多少个引用指向这个变量。当引用计数变为0时,这个变量就会被垃圾回收。
由于PHP是用C语言编写的,C语言中存在一种称为结构体的数据结构。PHP中的变量在C中也是以结构体的形式存储的。因此,PHP的变量在C中也是以这种结构体方式存储的。
每个PHP变量都存在一个引用计数器,用来记录有多少个引用指向这个变量。当引用计数变为0时,这个变量就会被垃圾回收。
php5和php7的垃圾回收机制都是利用引用计数。
什么叫做引用计数?
由于PHP是用C来写的,C里面有一种东西叫做结构体,我们PHP的变量在C中就是用这种方式存储的。
每个PHP的变量都存在于一个叫做zval的容器中,一个zval容器,除了包含变量名和值,还包括两个字节的额外信息,一个叫做'is_ref',是个布尔值,用来表示这个变量是否属于引用集合,通过这个字节,我们php才能把普通变量和引用变量区分开来.第二个额外字节就是'refcount',用来表示指向这个容器的变量的个数。
本文共计764个文字,预计阅读时间需要4分钟。
PHP5和PHP7的垃圾回收机制都是利用引用计数。所谓引用计数,是指每个变量都有一个引用计数器,用来记录有多少个引用指向这个变量。当引用计数变为0时,这个变量就会被垃圾回收。
由于PHP是用C语言编写的,C语言中存在一种称为结构体的数据结构。PHP中的变量在C中也是以结构体的形式存储的。因此,PHP的变量在C中也是以这种结构体方式存储的。
每个PHP变量都存在一个引用计数器,用来记录有多少个引用指向这个变量。当引用计数变为0时,这个变量就会被垃圾回收。
php5和php7的垃圾回收机制都是利用引用计数。
什么叫做引用计数?
由于PHP是用C来写的,C里面有一种东西叫做结构体,我们PHP的变量在C中就是用这种方式存储的。
每个PHP的变量都存在于一个叫做zval的容器中,一个zval容器,除了包含变量名和值,还包括两个字节的额外信息,一个叫做'is_ref',是个布尔值,用来表示这个变量是否属于引用集合,通过这个字节,我们php才能把普通变量和引用变量区分开来.第二个额外字节就是'refcount',用来表示指向这个容器的变量的个数。

