父类和子类在函数PHP中未正确引用

时间:2018-09-29 19:31:29

标签: php oop inheritance

我正在构建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 :(得分:1)

我不认为这段代码在做您认为正在做的事情。在childModel中,您要覆盖parentModel的__construct方法,因此永远不会调用parentModel中的__construct。因此$this->dbom应该为空。此外,如果您希望使用childModel中的$this->dbom,则应将范围从private $dbom更改为protected $dbom。有关此信息,请参见此页面:http://php.net/manual/en/language.oop5.visibility.php