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, и любых иерархий с наследуемым поведением.