Расширение статических классов PHP

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

Позволять'скажем, у нас есть суперкласс (называется "Супер") и подкласс (называетсяSub»).

class Super {
    protected static $title = 'super';
    public static function get_class_name()        
    {
        echo __CLASS__;
    }
    public static function get_title()
    {
        echo self::$title;
    }
}
class Sub extends Super {
    protected static $title = 'sub';
}

Теперь, вы, вероятно, ожидаете, так как Sub расширяет Super, теперь Sub будет наследовать все Super 'методы, однако, кажется, получают только ссылки на Sub 'методы.

Я говорю это, потому что если я позвоню:

Sub::get_class_name();

выход "Супер", и не "Sub».

И если я позвоню:

Sub::get_title();

опять же выводсупер", и у меня даже есть $ title, объявленный в Sub.

Так что это означает, что когда я вызываю унаследованную статическую функцию, функция 'Область видимости будет суперклассом, а не вызываемым (даже если вы напечатаете обратную трассировку, это покажет, что вызов был выполнен в суперклассе !!!), и для получения области видимости как подкласса, который вызывает делается, мне нужно переопределить этот метод внутри этого подкласса.Ну, этот вид поражает цель расширения классов, нене так ли?

Итак, мой вопрос, могу ли я когда-нибудь расширить статический класс, вызвать один из унаследованных методов и получить подкласссфера с? или, по крайней мере, чтобы быть в состоянии идентифицировать этоимя класса? И если нет, то зачем мне расширять статические классы?

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос