Yani, aşağıdaki sınıf vardır:
class db {
function __construct() { ... }
}
ve bu konuda uyarmıştım onu başlatabilirsiniz: $db = new db();
Ben başka bir sınıf var - benim uygulama omurgasını oluşturan ana sınıf. Ana diyelim:
class main {
public $var1;
public $db;
function __construct() {
$this->db = new db();
$this->start();
}
function start() {
$child = new child();
}
}
Veritabanı nesne başlatıldıktan sonra, bu yüzden gibi ana bir uzantısı, benim çocuk sınıf (seslenmek istiyorum:
class child extends main {
function __construct(){
echo parent::$var1; // Prints whatever is in $var1
}
function doSomething(){
parent::$db->runQuery(); // Doesn't work
}
}
Ancak, bu işe yaramazsa. Açıkçası, ben sadece benim ana sınıfı dışında benim $db
nesne ilan edebilir, ve sahip demektir gibi global $db;
çocukta tekrar onu almak için, ama ben ediyorum doğrusu değil (kullanın veritabanı nesnesini kullanmak istiyorsunuz her bir fonksiyonu o çizgi).
Nasıl ben sadece çocuk sınıflar benim $db
nesne kullanılabilir olabilir?