Что может содержать интерфейс в PHP (какие элементы могут быть определены внутри интерфейса)?
Уровень: Middle
Ответ
В PHP-интерфейсе можно определять объявления методов и константы. Методы в интерфейсе не содержат реализацию (тело пустое, только сигнатура) и всегда публичные (иначе не имело бы смысла в контракте интерфейса). Также в интерфейсе можно объявлять константы (они не могут быть изменены в реализующих классах). Начиная с PHP 8, в интерфейсе разрешены статические методы (без реализации) и приватные константы. Свойства (переменные) внутри интерфейса объявлять нельзя. Итого: интерфейс задаёт публичные методы (контракт) и может содержать константы, которые должны присутствовать в реализующем классе.