Kenara "Eğer adını değiştirmek zorunda kalmazsınız", PHP4 tarzı yapıcı isimlerini muhafaza ile herhangi bir gerçek sorunları vardır:
ClassName($args)
PHP5?
Eğer eski tarz bir kurucu adları kullanıyorsanız, bu gibi durumlarda etrafında biraz karışıklık yaratıyor ediyoruz
class A
{
public function A()
{
}
}
class B extends A
{
public function B()
{
//how do/should I call the parent constructor?
//parent::A(); ?
//parent::__construct(); ?
}
}
Birisi eski stil kurucu görür ve bir daha eski tarz kurucusuna onu geçer ise, işlevsellik kırma riski. Eğer B farklı bir sınıfını genişleten böylece nesne hiyerarşi oynama varsa da, elle parent::A()
tüm aramaları değiştirmek gerekir, ya da "yapıcısı aşina olmayan birisi sınıf adıyla bir yöntemdir "O ve ince kırma oluşacak yapmak bilmiyor olabilir (son 5 yıl içinde PHP öğrendim herkes anlamında) inşa.
According to the documentation, bu tek dezavantajı bulunuyor.