Класс может привязывать к своему контексту не только переменные и методы. Иногда требуются значения, которые невозможно изменить за весь жизненный цикл объекта. Для этих целей предназначены константы внутри классов.
Определение константы записывается как
const ИМЯ_КОНСТАНТЫ = значение_константы
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(); // результат: Белый