我有一個主類和一個擴展類(數據庫連接)。調用擴展類方法問題
父類名Classica
擴展DatabaseQ
我怎麼能叫父母中的擴展類的方法?
這不是工作:
$this->connectdb();
或該:
$this->DatabaseQ->connectdb();
例如代碼:
擴展
class DatabaseQ extends Classica{
public $dbhost;
public $dbname;
public $dbuser;
public $dbpass;
function __construct(){
include('config.php');
$this->dbhost = $dbhost;
$this->dbname = $dbname;
$this->dbuser = $dbuser;
$this->dbpass = $dbpass;
}
#connect to database
public function connectdb(){
$link = mysql_connect($this->dbhost,$this->dbuser,$this->dbpass);
if (!$link) {
die('Could not connect: ' . mysql_error());
}else {
//echo 'Connected Successfully to Database<br>';
}
@mysql_select_db($this->dbname) or die("Unable to select database!");
}
#read database
function readdb(){
}
#update database
private function updatedb(){
}
#close database connection
function closedb(){
mysql_close();
}
}
家長
class Classica{
function sample_method(){
//connect db here
//run some sql queries here
}
'$ this-> connectdb();'應該在父類的函數中工作,如果對象是'DatabaseQ'對象,如果擴展了非靜態方法。在這個函數中,你認爲它不稱之爲擴展類? – Wrikken
你真的實例化擴展/子類,並且你正在調用子類的那個實例的函數嗎? – Endophage
@Endophage好的。我怎樣才能instanciate在父親構造擴展類,所以它的方法可以使用? – Codex73