PHP7的垃圾回收机制与PHP5相比有哪些显著差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计800个文字,预计阅读时间需要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',用来表示指向这个容器的变量的个数。
本文共计800个文字,预计阅读时间需要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',用来表示指向这个容器的变量的个数。

