Вложенное наследование в PHP - PullRequest
1 голос
/ 08 февраля 2012

Например, у меня есть такие классы:

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
}

Как я могу получить $variableA и $variableB от MyClassD?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

Просто укажите их в любом классе, используя $this.

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

$var = new MyClassD;

Посмотрите, как это работает!

1 голос
/ 08 февраля 2012

Поскольку variableA является общедоступным в базовом классе, вы можете просто получить к нему прямой доступ, например, так: $MyClassDObj->variableB.

Поскольку variableA защищен, вам необходимо написать геттер, есливы хотели получить к нему доступ из-за пределов класса , в противном случае из-за класса D вы можете получить к нему доступ, как и к переменной B.Геттер будет выглядеть так:

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

И тогда вы звоните $MyClassDObj->getVariableA();

0 голосов
/ 08 февраля 2012

Точно так же, как вы получите его от MyClassA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...