Задать вопрос
@Muramidaza

Как в PHP использовать в родителе константу или статическую переменную из потомка?

Мне нужно использовать в родителе константу или статическую переменную из потомка, как правильно это сделать?
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
@Vitsliputsli
Если вопрос как правильно - то никак, а вредные советы уже предложили. Вы не должны обращаться из родителя к внутренностям потомков, это нарушает весь смысл наследования и создает циклически зависимые классы. Если вам нужно, чтобы какой-то объект управлял другими объектами - то наследование тут не нужно, управляющий и управляемые не родственные объекты (а если даже и родственные, то управление все равно никак не связано с родственными связями). А если нужно чтобы обобщенный метод родителя работал с данными или методами потомка - есть позднее статическое связывание.
Ответ написан
Комментировать
@rPman
Имя_класса::имя_пременной
Так же ключевое слово parent - имя предка, self - текущего класса
например parent::CONST_NAME
p.s. опс, не то.


Чтобы уж ответить на вопрос, в php нет метода получения списка потомков класса, но есть функция get_declared_classes() - возвращает массив имен всех классов, и функция is_subclass_of("объект или имя класса","имя проверяемого класса") вернет true если первый класс является потомком второго. Так всех перебрав можно будет получить список потомков, ну а затем нужному по имени из переменной - $var_class_name::static_member и даже по имени мембера в переменной $var_class_name::$$static_member_name
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы