Süper bir nesne ile Değişken kapsamı sorun

0 Cevap

Ben üzerinde çalışıyorum bir çerçeve proje için (CodeIgniter benzer) bir "süper nesne" oluştururken bazı sorun yaşıyorum.

Ben benim diğer tüm sınıfların geçecek bir süper nesnesi yapmak istiyorum. Ben yaptım, ama ben her işlev küresel anahtar sözcüğünü kullanarak olmadan benim sınıfların her birinde benim süper nesnenin nesne kullanmak mümkün duyuyorum görünüyor.

Ben böyle bir şey var:

class a
{
    function aa()
    {
        return 'class a';
    }
}

class b
{
    function bb()
    {
        $blah->a->aa();
    }
}

class superobj
{
    function loadClass($class)
    {
        $this->$class = new $class;
    }
}

class blah extends superobj
{
    function __construct()
    {
        $this->loadClass('a');
        $this->loadClass('b');
    }
}

$blah = new $blah;

Ben bu çalıştırırsanız ben aa yöntemi erişemez, çünkü Yani, ben bir hata alıyorum. Ben yöntem bb içine küresel $ filan koyarsanız, o zaman işler (ya da en azından öyle benim gerçek projede, ben bu 5 saniye mockup hehe hakkında bilmiyorum).

Yani her yöntem için başvurmak gerekmez böylece $ filan nesne küresel yapmak ya da herhangi bir yolu var, ya da ben ne çalışıyorum elde etmek için daha iyi bir yolu var mı?

Ben OOP çok iyi değilim ...

0 Cevap