3

循環参照を持つことは悪い習慣ですか、それともパフォーマンスに重大な影響を与えますか? たとえば、オブジェクト 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#の場合です。

4

1 に答える 1

3

循環参照に関するより一般的な議論については、循環参照の何が問題なのかを参照してください。プログラマーのstackexchangeサイトで。ただし、質問が明示的に述べていることに注意してください

二重リンク リストや親へのポインターなど、同種の循環参照について質問しているわけではありません。

PHP は、バージョン 5.3 以降、サイクルを完全に収集できるガベージ コレクターを実装しています。

パフォーマンスに関する考慮事項は、マニュアルのガベージ コレクション - パフォーマンスに関する考慮事項で説明されています。

于 2015-08-24T13:34:21.287 に答える