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

30.05.2018

Теги: PHPWeb-разработкаКлассКонстанта

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

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

Поиск: PHP • Web-разработка • Класс • Константа

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.