php: получить имя наследующего класса в статическом методе - PullRequest
1 голос
/ 20 февраля 2010

Хорошо, заголовок сообщения может быть немного запутанным.

У меня есть этот код:

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

class B extends A {

}

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

Выход: C

Что я хочу получить в foo () - это имя класса B. Как я могу сделать это без изменений в классе B?

С уважением, Ян Оливер

PS: __ CLASS __, get_class () не работают.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2010

До PHP 5.3 это было невозможно без хаков и известно как поздняя статическая привязка, термин, доступный для Google.

Если вам интересно, вот статья SO с ответами: Faking Late Static Binding перед php 5.3

0 голосов
/ 20 февраля 2010

Я думаю, вы могли бы использовать встроенный класс отражения для этого.

...