Это плохая практика, или, вероятно, страдают проблемы с производительностью, для хранения циклических зависимостей в объектах?

Это плохая практика или иметь значительное влияние на производительность иметь циклический эталон? например, добавить объект 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 #.

3

Решение

Для более общего обсуждения циклических ссылок см. Что не так с циклическими ссылками? на сайте программистов стека Но имейте в виду, что вопрос прямо заявляет

Я не спрашиваю об однородных циклических ссылках, таких как те, что в двусвязном списке или указатель на родителя.

В PHP реализован сборщик мусора, полностью способный собирать циклы начиная с версии 5.3.

Вопросы производительности обсуждаются в разделе Сборка мусора — вопросы производительности в руководстве.

3

Другие решения

Других решений пока нет …