Позднее статическое связывание в PHP (static) позволяет ссылаться на вызванный класс в контексте наследования, что решает проблему ссылки на родительский класс (self).
Проблема возникает, когда внутри родительского класса используется self::
, который при вызове из дочернего класса все равно ссылается на родительский класс. Это противоречит ожиданию, что ссылка будет на текущий, дочерний класс.
Пример использования self::
и поведения:
php
Здесь self::кто_я()
внутри ParentClass::кто_вызван()
продолжает ссылаться на ParentClass
, даже когда метод вызывается через ChildClass
.
Для решения этой проблемы используется `
Позднее статическое связывание в PHP (static) позволяет ссылаться на вызванный класс в контексте наследования, что решает проблему ссылки на родительский класс (self).
Проблема возникает, когда внутри родительского класса используется self::
, который при вызове из дочернего класса все равно ссылается на родительский класс. Это противоречит ожиданию, что ссылка будет на текущий, дочерний класс.
Пример использования self::
и поведения:
php
Здесь self::кто_я()
внутри ParentClass::кто_вызван()
продолжает ссылаться на ParentClass
, даже когда метод вызывается через ChildClass
.
Для решения этой проблемы используется `
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.