Bir sınıf ad alanını otomatik olarak nasıl alabilirim?PHP sınıfı ad alanını dinamik olarak alın
Alt sınıflarda doğru tanımlanmadığı için sihirli var __NAMESPACE__
güvenilmezdir.
Örnek:
class Foo\bar\A
->__NAMESPACE__
=== Foo \ çubuğu
class Ping\pong\B extends Foo\bar\A
->__NAMESPACE__
=== Foo \ çubuğu
ps (o Ping \ pong olmalıdır): Fark ettim __CLASS__
kullanarak aynı yanlış davranış, ama ben get_called_class()
kullanarak çözdüm ... get_called_class_namespace()
gibi bir şey var mı? Bu işlevi nasıl uygulayabilirim?
GÜNCELLEME:
Ben çözüm ben get_called_class()
döner tam nitelikli sınıf adını gerçekleştirilen beri, benim kendi soru olduğunu düşünüyorum ve bu nedenle ondan ad çıkarabilir: Daha etkili bir var Neyse eğer ... D yaklaşım bana bildirin;)
Çözümün ben kişisel kodda yapmak zorunda kalmıştım şeydir. http://codepad.viper-7.com/EgObtf –
Ne anlattığınız yanlış davranış değildir. Bu sabitlerin neler taşıdığını görün: http://php.net/language.constants.predefined - ve sorununuza bir çözüm bulduğunuzda kendi sorunuza cevap verebilirsiniz. – hakre
Bunu kontrol edin. Bunun ne demek olduğunu düşünüyorum: http://stackoverflow.com/questions/2317343/get-child-class-namespace-from-superclass-in-php/20193599#20193599 – Chris