SORU
13 EKİM 2009, Salı


Nasıl PHP bir sınıf üst aramasını'in ana'in kurucu muyum

Onun ebeveyni PHP çağrısında bir sınıf lazımebeveynin(büyükbaba?) üst kurucu çağırmadan yapıcı.

// main class that everything inherits
class Grandpa 
{
    public function __construct()
    {

    }

}

class Papa extends Grandpa
{
    public function __construct()
    {
        // call Grandpa's constructor
        parent::__construct();
    }
}

class Kiddo extends Papa
{
    public function __construct()
    {
        // THIS IS WHERE I NEED TO CALL GRANDPA'S
        // CONSTRUCTOR AND NOT PAPA'S
    }
}

Bunu yapmak için garip bir şey olduğunu biliyorum ve kötü kokmayan bir yol bulmaya çalışıyorum ama yine de, eğer mümkün olup olmadığını merak ediyorum.

EDİT

Seçilen cevap için gerekçe post gerektiğini düşündüm. Aramak isteyen sebebi; bu sorunu en şık solutionto "büyükbaba veya büyükanne tüm değerleri koruyarak," yapıcı. Ne de OOP dostu kesinlikle en iyi yaklaşım değil, ama bu soruyu sorduğum şey bu değildi.

Herkes için daha sonraki bir tarihte bu soruyu karşıya geliyorBaşka bir çözüm bulun lütfen. Sınıf yapısı üzerinde büyük hasara yol olmadığını çok daha iyi bir yaklaşım bulmak mümkün oldu. Sen de öyle yapmalısın.

CEVAP
13 EKİM 2009, Salı


Çirkin geçici Papa kod oluşturucu bulunan ayrıştırmak için istemiyorsanız gösteren boolean bir parametre geçmek olacaktır. ben.e:

// main class that everything inherits
class Grandpa 
{
    public function __construct()
    {

    }

}

class Papa extends Grandpa
{
    public function __construct($bypass = false)
    {
        // only perform actions inside if not bypassing
        if (!$bypass) {

        }
        // call Grandpa's constructor
        parent::__construct();
    }
}

class Kiddo extends Papa
{
    public function __construct()
    {
        $bypassPapa = true;
        parent::__construct($bypassPapa);
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Techmoan

    Techmoan

    31 Mayıs 2009