我正在构建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
}
}
答案 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