Интерфейсы PHP имеют свойства?

Интерфейсы в PHP имеют свойства, или у них только есть методы?

60
задан BoltClock 30 November 2011 в 17:02
поделиться

3 ответа

Это зависит от того, что вы подразумеваете под «свойствами». Если вы имеете в виду настоящие поля, то нет, это не так. Если вы имеете в виду такие свойства, как в C #, тогда да, они могут (поскольку аксессоры свойств в любом случае являются строго синтаксическим сахаром для методов доступа). То же самое и для событий (хотя, конечно, в каждом случае не указывается реализация для get / set или add / remove аксессуаров).

Обновление : Поскольку PHP не имеет свойств в смысле get / set аксессоров, то ответ на ваш вопрос - нет. Интерфейсы не могут нести свои собственные данные / состояние.

34
ответ дан 24 November 2019 в 17:52
поделиться

Интерфейсы PHP могут иметь константы, но не свойства (переменные экземпляра). Если вам не нужно изменять свое «свойство», вы можете вместо этого использовать константу.

14
ответ дан 24 November 2019 в 17:52
поделиться

Интерфейсы в PHP могут содержать только публичные методы подписи без тела метода. Они также могут содержать константы. Но это все. Ничего больше.

См. http://www.php.net/manual/en/language.oop5.interfaces.php

Интерфейсы определяются с помощью ключевого слова interface так же, как и стандартный класс, но без любой из методов, для которых определено их содержимое. […] Все методы, объявленные в интерфейсе, должны быть общедоступными, такова природа интерфейса. […] Интерфейсы могут иметь константы. Константы интерфейса работают точно так же, как константы класса, за исключением того, что они не могут быть переопределены классом / интерфейсом, который их наследует.

19
ответ дан 24 November 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: