oop — PHP Доступ к переменной родительского класса через расширенный класс после переопределения в дочернем классе

Как мы можем получить доступ к исходной переменной родительского класса через дочерний класс, если дочерний класс переопределяет ее после расширения.

class SimpleClass{
public $var = 'This is Parent';

public function getVar(){
return $this->var;
}
}

class ExtendClass extends SimpleClass{
public $var = 'This is Child';

public function getParent(){
return parent::getVar();
}
}

$obj = new ExtendClass();

echo $obj->getParent(); // Prints 'This is Child'

Я уверен, что он что-то делает с псевдопеременной $ this, потому что я создаю ExtendClass, в этом контексте $ this имеет доступ только к переопределенной переменной $ var.

Поэтому я попытался получить статический доступ к переменной с помощью методов класса.

class SimpleClass{
public static $var = 'This is Parent';

public function getVar(){
return self::$var;
}
}

class ExtendClass extends SimpleClass{
public static $var = 'This is Child';

public function getParentVar(){
return parent::getVar();
}

public function getChildVar(){
return self::$var;
}
}

$obj = new ExtendClass();

echo $obj->getParentVar();// Prints 'This is Parent'

echo $obj->getChildVar();// Print 'This is Child'

Это сработало, но как мы можем нестатически получить доступ к переменной родительского класса через метод getVar () класса Parent.

2

Решение

Если дочерний класс явно не создаст резервную копию исходного значения перед его редактированием, вы не сможете получить доступ к родительская ценность члена класса, так как нет родительская ценность. Код дочернего и родительского класса разделяют так же переменная.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]