Родительские и дочерние классы неправильно ссылаются в функции PHP - PullRequest
0 голосов
/ 29 сентября 2018

Я создаю компонент MVC, и у меня возникает проблема с родительской и дочерней моделями.У меня есть несколько методов в родительской модели, и они не работают с объектом database_class, конструктор работает нормально, но когда я использую этот объект в методах, его как конструктор не существует?

  Class Controlller 
      {


        public function __construct()
        {
            $this->childModel = $this->model('childModel');

        } // end construct


    // methods go here

    }

Вот модели:

 class childModel extends parentModel {


       private $dbo;
        public function __construct()
        {
            $dbobj = new Database_class;
            $this->dbo = $dbobj;

        }

    //methods


    }

class parentModel {

    private $dbom;

      public function __construct()
      {
        $dbombj = new Database_class;
        $this->dbom = $dbombj; 
       var_dump($this->dbom); //working perfectly as database object

      }

    public function methodName()
      {
        var_dump($this->dbom); //not showing up as database object
      }
    }

1 Ответ

0 голосов
/ 29 сентября 2018

Я не думаю, что этот код делает то, что вы думаете, он делает.В childModel вы перезаписываете __construct метод parentModel, поэтому __construct в parentModel никогда не вызывается.Поэтому $this->dbom должно быть нулевым.Кроме того, если вы хотите использовать $this->dbom из childModel, вам, вероятно, следует изменить область действия с private $dbom на protected $dbom.Смотрите эту страницу для получения дополнительной информации об этом: http://php.net/manual/en/language.oop5.visibility.php

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