Задать вопрос
youtube_com_chevichelov
@youtube_com_chevichelov

Как вызвать переменную предка класса?

Есть два класса a и b как получить переменные из класса b если они переназначены?
class a {
	public $data;
}

class b extends a {
	public $data;
	public function get_data() {
		Как вызвать $data класса a?
	}
}

Вот так не работает
class a {
	public $data;
}

class b extends a {
	public $data;
	public function get_data() {
		parent::data;
	}
}

Нашёл костыль в интернете
class a {
	public $data;
	public function data() {
		return $this->data;
	}
}

class b extends a {
	public $data;
	public function get_data() {
		parent::data();
	}
}

Есть ли без костыльное решение?

[Решение]
Использовать разные названия переменных, к сожалению нормального перенаправления переменных в пыхе пока нет.
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
romy4
@romy4
Exception handler
вы нарушили основной принцип DRY (do not repeat yourself). это значит, что вам не нужно определять переменную с тем же названием и доступом в дочернем классе, если она есть в родительстком (-их)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
parent::data;

Почему вы так-то вызываете? Это же не константа.

parent::$data;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽