使用循环引用是不好的做法还是会对性能产生重大影响?例如,添加对象A作为对象B的属性,然后添加对象B作为对象A的属性?
一个例子:
<?php
class Object_A {
public function __construct() {
$this->b = new Object_B( $this );
}
public function get_b() {
return $this->b;
}
}
class Object_B {
public function __construct( Object_A $a ) {
$this->a = $a;
}
}
关于循环引用的更一般的讨论,请参见循环引用有什么问题?在程序员堆栈交换网站。但请记住,问题明确地陈述了
我不是在问关于同质循环引用,像那些在双链表或指针到父。从5.3版开始,PHP实现了一个完全能够收集循环的垃圾收集器。
性能注意事项在手册中的垃圾收集-性能注意事项中进行了讨论。