引用计数原理
了解了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)
复制代码 |