首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

php底层原理之垃圾回收机制(2)

php底层原理之垃圾回收机制(2)

引用计数原理

了解了php变量的内部存储结构之后,我们再了解下php变量赋值相关的原理和早期垃圾回收机制
变量容器
非array和object变量

每次将常量赋值给一个变量时,都会产生一个变量容器

举例:

    $a = '许铮的技术成长之路';
    xdebug_debug_zval('a')
    复制代码

结果:

    a: (refcount=1, is_ref=0)='许铮的技术成长之路'
    复制代码

array和object变量

会产生元素个数+1的变量容器

举例:

    $b = [
    'name' => '许铮的技术成长之路',
    'number' => 3
    ];
    xdebug_debug_zval('b')
    复制代码

结果:

    b: (refcount=1, is_ref=0)=array ('name' => (refcount=1, is_ref=0)='许铮的技术成长之路', 'number' => (refcount=1, is_ref=0)=3)
    复制代码
返回列表