Константы класса в 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(); // результат: Белый


  27.04.24 / 19:37 | PHP |   204 | 5   0