Константы класса в PHP

Класс может привязывать к своему контексту не только переменные и методы. Иногда требуются значения, которые невозможно изменить за весь жизненный цикл объекта. Для этих целей предназначены константы внутри классов.

Определение константы записывается как

  1. const ИМЯ_КОНСТАНТЫ = значение_константы

Функция define(), применяемая в работе с обычными константами, здесь не используется.
  1. class ErrorMessage {
  2. // определяем константу с сообщением
  3. const ERROR = 'Произошла ошибка!';
  4. }

Получить значение константы можно как внутри класса, так и снаружи. Доступ к константе извне класса:
  1. /*
  2.  * Доступ к константе извне класса
  3.  */
  4. class Colors {
  5. // определяем константы цветов
  6. const BLACK = 'Черный';
  7. const WHITE = 'Белый';
  8. }
  9.  
  10. $colors = new Colors();
  11. // получение доступа к константе через экземпляр класса
  12. echo $colors::BLACK; // результат: Черный
  13. // получение доступа к константе по имени класса
  14. echo Colors::WHITE; // результат: Белый

Доступ к константе внутри класса:
  1. /*
  2.  * Доступ к константе внутри класса
  3.  */
  4. class Colors {
  5. // определяем константы цветов
  6. const BLACK = 'Черный';
  7. const WHITE = 'Белый';
  8.  
  9. public function showBlackColor() {
  10. echo self::BLACK;
  11. }
  12. public function showWhiteColor() {
  13. echo $this::WHITE;
  14. }
  15. }
  16.  
  17. $colors = new Colors();
  18. // получение доступа к константе внутри класса через self
  19. echo $colors->showBlackColor(); // результат: Черный
  20. // получение доступа к константе внутри класса через $this
  21. echo $colors->showWhiteColor(); // результат: Белый


  27.04.24 / 19:37 | PHP |   147 | 4   0