@bedolazhka

Как обойтись без параметра для parent?

<?php
class AAA
{
	protected $test;
	
	public function __construct($a)
	{
		$this->test = $a;
	}
}

class BBB extends AAA
{
	public function __construct()
	{
		parent::__construct($a); // неизвестная переменная $a, так а откуда я тут возьму параметр $a?
	}
}
new BBB;

Как обойтись без parent::__construct($a) и использовать конструктор в BBB и свойство родителя $this->test?
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Всем изучающим ООП надо метровыми буквами написать во всю стену

НАСЛЕДУЮТСЯ КЛАССЫ, А НЕ ОБЪЕКТЫ
НАСЛЕДУЮТСЯ КЛАССЫ, А НЕ ОБЪЕКТЫ
НАСЛЕДУЮТСЯ КЛАССЫ, А НЕ ОБЪЕКТЫ

И медитировать на них каждый день по часу.
Другими словами -

НАСЛЕДУЕТСЯ СТРУКТУРА, А НЕ СОСТОЯНИЕ

чтобы не приходили в голову глупости типа
мне нужно чтобы $this->test была создана в родителе и уже была в потомке


Объекты родителя и наследника вообще никак не связаны. Объект родительского класса может быть создан, а может быть и не создан - это никак не отражается на поведении потомка. Инстанс потомка - совершенно самостоятельный объект, который не наследует ничего из состояния родителя.

Как тебе уже сказали, ты что-то делаешь не так.
Ответ написан
profesor08
@profesor08 Куратор тега PHP
class AAA
{
  public $test;
  
  public function __construct($a = 123)
  {
    $this->test = $a;
  }
}

class BBB extends AAA {}

echo (new BBB())->test; // 123
Ответ написан
Minifets
@Minifets
Hello world!!!
class BBB extends AAA
{
  public function __construct()
  {
    parent::__construct(null);
  }
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект