Что такое позднее статическое связывание (Late Static Binding)?

Ответ

LSB позволяет ссылаться на класс, который реально вызвал статический метод, а не на класс, в котором метод определен:

class Base {
    public static function create(): static {
        return new static(); // класс вызова, не определения
    }
}

class User extends Base {}
class Admin extends Base {}

$user = User::create();  // User, а не Base
$admin = Admin::create(); // Admin, а не Base

Ключевое слово static (вместо self) реализует LSB. Это основа для паттернов Active Record (Eloquent), Factory Method, и любых иерархий с наследуемым поведением.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.