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

Как работают конструкторы в php?

Как хранит php переменные созданные в конструкторе? и если основной контроллер сделал запрос к бд а друой контроллер с расширением основного запрашивает данную переменную, основной делает ещё раз запрос или выдаёт то что есть? ( controller1 $a=db->result | controller2 extends controller1 $b=this->$a ). Может сформулировал не очень но пробел есть. Ну или скиньте статью, кому не жалко)) не нашел такую информацию.
  • Вопрос задан
  • 174 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
DevMan
@DevMan
если вы вызываете сначала controller1, a затем controller2, то конструктор выполнится два раза.
https://ideone.com/Uv7B8k
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ipokos
Может сформулировал не очень но пробел есть.
- это вообще не понятно.
Быстрее было проверить, чем писать вопрос.
class A
{
    public $varFromA;

    public function __construct()
    {
       /* Выполнение запроса к БД и получение результата */
       $this->varFromA = 'query_result';
       var_dump($this->varFromA);
    }
}

class B extends A
{
}
new B();

Если создать объект класса B, то будет инициализирован конструктор класса А тоже (т.е. все запросы и функции что есть в конструкторе класса А будут выполнены)
Ответ написан
@synapse_people
можно и не вызывать, для этого метод переодпределяем, а конструктор родительского класса не вызываем и все
Без parent::__consturcto
Хотя и не сильно это правильно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы