Константы класса в PHP
Класс может привязывать к своему контексту не только переменные и методы. Иногда требуются значения, которые невозможно изменить за весь жизненный цикл объекта. Для этих целей предназначены константы внутри классов.
Определение константы записывается как
const ИМЯ_КОНСТАНТЫ = значение_константы
Функция define(), применяемая в работе с обычными константами, здесь не используется.
class ErrorMessage { // определяем константу с сообщением const ERROR = 'Произошла ошибка!'; }
Получить значение константы можно как внутри класса, так и снаружи. Доступ к константе извне класса:
/* * Доступ к константе извне класса */ class Colors { // определяем константы цветов const BLACK = 'Черный'; const WHITE = 'Белый'; } $colors = new Colors(); // получение доступа к константе через экземпляр класса echo $colors::BLACK; // результат: Черный // получение доступа к константе по имени класса echo Colors::WHITE; // результат: Белый
Доступ к константе внутри класса:
/* * Доступ к константе внутри класса */ class Colors { // определяем константы цветов const BLACK = 'Черный'; const WHITE = 'Белый'; public function showBlackColor() { echo self::BLACK; } public function showWhiteColor() { echo $this::WHITE; } } $colors = new Colors(); // получение доступа к константе внутри класса через self echo $colors->showBlackColor(); // результат: Черный // получение доступа к константе внутри класса через $this echo $colors->showWhiteColor(); // результат: Белый