Они не так полезны - пока.Похоже, что их основное назначение - намеки на тип.Когда вы пишете два отдельных класса, которые реализуют один и тот же интерфейс, вы можете использовать этот интерфейс в подсказке типа для функции.Таким образом, вы знаете, что у вас есть все методы этого интерфейса, доступные в объекте, который передается в параметре.
К сожалению, PHP фактически не проверяет, являются ли какие-либо вызываемые методы или свойства, которые вы вызываете для этого параметра,на самом деле в этом интерфейсе, так что вы можете случайно использовать свойство объекта, которое недоступно в интерфейсе, вызывая потенциальные ошибки при передаче объекта другого типа.
Другие языки намного строже в этой ситуации и будутПозволяет использовать только ту функциональность, которая объявлена в интерфейсе.
Тем не менее, они удобны для этой цели и в PHP, и, возможно, эти проверки станут более строгими в будущих версиях, поэтому они станут менее подверженными ошибкам.