php5.3之前的版本 , 只有引用计数 , 如果遇到循环引用的情况 , 会出现内存泄露
比如这样的代码:
<?...php
$arr=array("tao");
$arr[]=$a;
unset($arr)
虽然unset了$arr , 但是内存并不能回收 , 因为有引用自身这样的行为
php5.3 之后的版本 ,...在引用计数的基础上 , 增加了同步回收 , 把计数减-1 大于0的变量 , 塞入了root buffer这样的根缓冲池 , 满10000后 , 对池里的变量进行回收操作 , 解决了上面的循环引用问题
php7...没有引用计数
内部增加了一个引用类型 , 变量为对象类型 , 资源类型 , 引用类型时 , 会使用引用计数
字符串类型 , 区分临时字符串 , 内部字符串 , 已知字符串 , 内部字串和已知字串,都会存在于php