引用计数和写时复制
新的垃圾回收机制解决了无法处理循环的引用内存泄漏问题
PHP的垃圾回收机制在执行过程中以四种颜色标记状态。
GC_WHITE 白色表示垃圾
GC_PURPLE 紫色表示已放入缓冲区
GC_GREY 灰色表示已经进行了一次refcount的减一操作
GC_BLACK 黑色是默认颜色,正常
循环引用案例:
<?php
$arr = [
'a', 'b',
'c', 'd',
];
foreach ($arr as &$each){
echo $each;
}
echo PHP_EOL;
foreach ($arr as $each){
echo $each;
}