> Что такое late static binding в PHP (PHP)

Уровень: junior · Роль: backend · Язык: PHP · Категория: Технические вопросы

Компании: vanta

Стек: PHP

> Пример ответа

Late static binding (LSB) в PHP - это механизм, который позволяет вызывать статические методы и свойства в контексте класса, который был вызван во время выполнения, а не класса, в котором метод был определен. Он реализован с помощью ключевого слова static::, которое разрешается на этапе выполнения (runtime), в отличие от self::, которое привязывается к классу, где код написан.

Пример:

PHP
class ParentClass {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who(); // Выведет "ParentClass"
static::who(); // LSB: выведет класс, который вызвал метод
}
}
class ChildClass extends ParentClass {
public static function who() {
echo __CLASS__;
}
}
ChildClass::test(); // Вывод: ParentClassChildClass

Здесь self::who() всегда вызывает метод из ParentClass, а static::who() - из ChildClass, так как LSB определяет класс, с которого начался вызов. Это особенно полезно при реализации паттернов вроде Singleton или ActiveRecord, где нужно работать с унаследованными статическими методами.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью