da onunla ilgili bir fabrikada desen fonksiyonu ile bir sınıf var:başlatmasını çocuk sınıfları
abstract class ParentObj {
public function __construct(){ ... }
public static function factory(){
//returns new instance
}
}
ben fabrika işlevi çağırmak ve arama bir örneğini iade edebilmek için çocukların ihtiyaç Sınıf: $child = Child::factory();
ve tercihen çocuk fonksiyonunda fabrika fonksiyonunu geçersiz kılmadan.
Bunu elde etmenin birçok farklı yolunu denedim. __CLASS__
gibi yansımayı kullanan çözümlerden uzak durmayı tercih ederim.
bir çözüm olabilecek şekilde, late static binding göz atın
Ben kimsenin bu arada artırdı kısaca eğer bazı kodlar çalışacağım böylece ... –
LSB görünüyor Kendi başıma bulabileceğim en iyi çözüm olmak. Yükseltme yapmadan önce, en iyisi çocuk ismini fabrikaya() aktarmak veya adı bir özellik olarak tanımlamak ve fabrikadan alıp almak() –
PHP el kitabına göre bir işlev var. get_called_class() '' __CLASS__' gibi çalışır http://us.php.net/manual/en/function.get-called-class.php –