Это плохая практика или иметь значительное влияние на производительность иметь циклический эталон? например, добавить объект 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;
}
}
Этот ответ кажется похожим, но для C #.
Для более общего обсуждения циклических ссылок см. Что не так с циклическими ссылками? на сайте программистов стека Но имейте в виду, что вопрос прямо заявляет
Я не спрашиваю об однородных циклических ссылках, таких как те, что в двусвязном списке или указатель на родителя.
В PHP реализован сборщик мусора, полностью способный собирать циклы начиная с версии 5.3.
Вопросы производительности обсуждаются в разделе Сборка мусора — вопросы производительности в руководстве.
Других решений пока нет …