http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces.constants
Возможно, чтобы интерфейсы имели константы. Константы интерфейса работают точно так же, как и константы класса, за исключением того, что они не могут быть переопределены классом / интерфейсом, который его наследует.
Константы интерфейса не могут быть переопределены наследованием классов. Константы класса могут быть переопределены, но не обязательны (даже если они объявлены в абстрактном классе). Абстрактные классы предназначены для реализации интерфейса , а не реализации . Константы подпадают под реализацию, а методы определяют интерфейс. Таким образом, хотя константы могут быть объявлены со значением по умолчанию в абстрактном классе, дочерний процесс должен решить, использовать их или переопределить, или нет.
Ваша лучшая альтернатива - использовать методы "getter", например ::
abstract class MyAbstract
{
abstract public function getPropertyA();
abstract public function getPropertyB();
}
Теперь любой класс, использующий extend MyAbstract
, должен будет определить getPropertyA()
и getPropertyB()
, что гарантирует, что значения будут всегда доступны.