Это механизм, который позволяет ссылаться на вызванный класс в контексте статических вызовов. Он решает проблему, связанную с самореференциями в наследующих классах при использовании ключевого слова static::.
Рассмотрим пример с использованием self:::
php
В этом случае self::who() внутри класса A всегда будет вызывать метод who из класса A, даже если вызов test() происходит из класса B.
Теперь рассмотрим пример с использованием static:::
php
Здесь static::who() внутри класса A при вызове из класса B будет ссылаться на класс B и вызовет метод who() из класса B.
Позднее статическое связывание позволяет динамически определять, какой класс использовать в контексте статического вызова в зависимости от того, какой класс фактически был вызван. Это становится особенно полезным при работе с иерархиями классов и статическими методами, которые должны вести себя полиморфно. Оно работает путем запоминания "вызванного не-перенаправленного класса" (конечного класса в цепочке наследования, с которого начался статический вызов) и использования его для разрешения ссылок static::.