这听起来可能有点令人困惑,这就是为什么我在这里,因为我可能做错了什么。按照下面示例代码的逻辑,我正在尝试创建一个“共享属性”,以便任何扩展 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';
}
逻辑似乎有效,但我的悲观情绪正在开始。我是否正确地通过引用传递了这个,或者有没有更好的方法来实现我所追求的而不通过引用传递?