私はプライマリクラスと拡張クラス(データベース接続)を持っています。拡張クラスメソッドの呼び出し問題
親クラス名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いいです。どのようにして、親クラス内で拡張クラスを構築してメソッドを使用できるのでしょうか? – Codex73