Bir çocuk sınıftan bir nesne Erişme

0 Cevap php

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?

0 Cevap