これは少し混乱を招くように聞こえるかもしれません。それが、おそらく何か間違ったことをしているので、ここにいる理由です。以下のコード例のロジックに従って、「共有プロパティ」を作成して、B を拡張するすべてのクラスが A のプロパティを変更できるようにし、クラス C がそれにアクセスできるようにします。
class A
{
public $shared = null;
}
class B
{
public $a;
public $c;
function __construct()
{
$this->a = new A();
$this->c = new C($this->a->shared);
}
}
class C
{
public $test;
function __construct(&$shared)
{
$this->test = &$shared;
var_dump($this->test);
}
}
class Test extends B
{
$this->a->shared = 'success';
}
ロジックは機能しているようですが、私の悲観論が始まっています。これを正しく参照渡ししていますか、それとも参照渡しなしで目的を達成するためのより良い方法はありますか?