Hala onu kullanırken subclassing sonra, nasıl ebeveynin kurucusunu kılabilirsiniz?

3 Cevap php

Örnek: Ben EbeveynSınıf adında bir sınıf var. EbeveynSınıf böyle bir kurucusu vardır:

function __construct($tpl) {
    // do something with the $tpl
}

EbeveynSınıf yeni bir örneğini oluştururken, ben böyle olduğunu $ tpl parametreyi sağlamanız gerekir:

$p = new ParentClass('index');

Sonra orada bir çocuğu olarak EbeveynSınıf uzanır. Ben çocuğu olarak yapıcı EbeveynSınıf o $ TPL sağlar, ama tabii ben EbeveynSınıf sadece bir örneğini istemiyorum istiyorum, ama çocuğu olarak bir.

Yeni bir çocuğu olarak örneğini oluştururken Yani, ben gibi bakmak istiyorum:

$foo = new ChildClass();

Ama içten, ben EbeveynSınıf kurucusuna o 'indeks' sağlamak istiyoruz.

Bunu nasıl elde edebilirsiniz PHP?

3 Cevap

parent::__construct() Eğer parent yapıcısı çağırabilirsiniz ile.

class ChildClass extends ParentClass
{
    function __construct()
    {
        parent::__construct('index');
    }
}

Bu deneyin:

class ChildClass extends ParentClass{
  function __construct($tpl) {
    parent::__construct($tpl);
  }
}

Şimdi çocuğu olarak örneğini oluşturun:

$p = new ChildClass('index');

Note: In your child class, you should include the parent class.

Sen parent::_construct('index'); ChildClass yapıcısı içinde arayabilirsiniz. Bu index kullanarak temel sınıf inşa edecek.