php: statik bir yöntem bir türetilen sınıfın adını almak

2 Cevap php

Tamam, yazı başlığı biraz kafa karıştırıcı olabilir.

Bu kodu vardır:

class A {
    public static foo() {
        return get_called_class();
    }
}

class B extends A {

}

class C {
    public function bar() {
        echo B::foo();
    }
}

Çıktı: C

Ben foo almak istiyorum ne () B sınıfı adıdır B sınıfı bir değişiklik olmadan ben nasıl yapabilirim?

Regards, Jan Oliver

PS: __ CLASS __, get_class () çalışmıyor.

2 Cevap

PHP 5.3 önce, bu kesmek olmadan mümkün değildir ve bir googleable terim, geç statik bağlama olarak bilinir.

Eğer ilgileniyorsanız, burada cevapları ile SO yazıdır: http://stackoverflow.com/questions/890505/faking-late-static-binding-before-php-5-3

Ben bunun için yerleşik Reflection class kullanabilirsiniz düşünüyorum.