【发布时间】:2020-02-13 19:21:17
【问题描述】:
这似乎是一个糟糕的设计模型,但无论如何我都会问。 我想从可变选择的子类中访问父方法。 在此示例中,找不到 $db。
class car {
function __construct(){
$db = doSomethingGetDBObj();
global $db; $this->db = $db;
}
}
class engine extends car {
var $valve;
function whichValve( $which ){
$this->valve = new $which();
var_dump( $this->valve->motion() );
}
}
class valve1 extends engine {
function motion(){
return( parent::$db->GetRow("query for valve 1") );
}
}
class valve2 extends engine {
function motion(){
return( parent::$db->GetRow("query for valve 2") );
}
}
$drive = new engine();
$drive->whichValve( "valve2" );
【问题讨论】: