Sobes.tech
Junior — Middle

Мо метавонед шарҳ диҳед, ки чӣ гуна пайванди статикии дер дар PHP аст ва чӣ гуна аз дигар навъҳои пайванди фарқ мекунад?

sobes.tech AI

Ҷавоб аз AI

Позднее статическое связывание (Late Static Binding, LSB) в PHP — это механизм, который позволяет внутри статических методов и свойств класса обращаться к вызывающему классу, а не к тому, где метод был определён.

Отличие от обычного статического связывания в том, что при обычном вызове через self:: всегда используется класс, в котором метод объявлен, а при позднем статическом связывании через static:: — класс, который фактически вызвал метод (runtime-класс).

Пример:

class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();    // всегда A
        static::who();  // позднее статическое связывание
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();
// Выведет:
// A (из self::who())
// B (из static::who())

Таким образом, LSB позволяет создавать более гибкие и расширяемые классы, где поведение зависит от класса-наследника, а не только от класса-родителя.