PHP 中的嵌套继承

发布于 2025-01-03 06:43:22 字数 447 浏览 1 评论 0原文

例如,我有这样的类:

class MyClassA{
   protected $variableA='this is var A';
   public $variableB='this is var B';
   //some function here
}

class MyClassB extends MyClassA{
   //some function here
}

class MyClassC extends MyClassB{
   //some function here
}

class MyClassD extends MyClassC{
   //some function here
}

How can I get $variableA and $variableB from MyClassD?

For an instance, I have classes like this:

class MyClassA{
   protected $variableA='this is var A';
   public $variableB='this is var B';
   //some function here
}

class MyClassB extends MyClassA{
   //some function here
}

class MyClassC extends MyClassB{
   //some function here
}

class MyClassD extends MyClassC{
   //some function here
}

How can I get $variableA and $variableB from MyClassD?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜深人未静 2025-01-10 06:43:22

只需使用 $this 在任何类中引用它们即可。

class MyClassD extends MyClassC {
    function __construct()
    {
        echo $this->variableA; 
        echo $this->variableB;
    }
}

$var = new MyClassD;

看看它是否有效!

Just reference them in any class using $this.

class MyClassD extends MyClassC {
    function __construct()
    {
        echo $this->variableA; 
        echo $this->variableB;
    }
}

$var = new MyClassD;

See it work!

听,心雨的声音 2025-01-10 06:43:22

由于 variableA 在基类中是公共的,因此您可以直接访问它,如下所示:$MyClassDObj->variableB

由于variableA是受保护的,如果你想从类外部访问它,你需要编写一个getter,否则从类D内部,你可以像variableB一样访问它。 getter 看起来像这样:

public function getVariableA()
{
    return $this->variableA;
}

然后你调用 $MyClassDObj->getVariableA();

Since variableA is public in the base class, you can just access it directly like so: $MyClassDObj->variableB.

Since variableA is protected, you need to write a getter if you wanted to access it from outside the class, otherwise from within class D, you can access it just like variableB. A getter would look like this:

public function getVariableA()
{
    return $this->variableA;
}

And then you call $MyClassDObj->getVariableA();

一杯敬自由 2025-01-10 06:43:22

就像您从 MyClassA 获取它一样。

Just like you'd get it from MyClassA.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文