Что такое константа

Константа - это имя, связанное с одним фиксированным значением. Как следует из названия, значение константы не может быть изменено во время выполнения PHP-скрипта.
Для объявления константы используется функция define(). Она принимает два аргумента: имя константы и её значение. Например:
По соглашению имена констант записываются в верхнем регистре. В отличие от переменных, перед именем константы не ставится знак доллара ($).
По умолчанию имена констант чувствительны к регистру: WIDTH и width - это разные константы.
В PHP 5 константа могла содержать только простые значения: число, строку или булево значение. Начиная с PHP 7.0, константа может хранить массив:
Как и суперглобальные переменные, константы доступны из любой части скрипта.

Ключевое слово const

В PHP есть альтернативный способ объявления констант, с помощью ключевого слова const. Синтаксис следующий:
Здесь после const указывается имя константы, затем оператор присваивания и значение. Значение может быть скаляром (число, строка) или массивом.
Пример использования:
Массив в качестве значения:

Различия между define() и const

  • define() - это функция, а const - языковая конструкция.
  • define() определяет константу во время выполнения (runtime), а const - на этапе компиляции (compile time).
  • С помощью define() можно объявлять константы условно:
С const так сделать нельзя:
  • define() позволяет использовать выражения для формирования имени константы:
С const такой подход невозможен.
Если не требуется условное объявление или использование выражений, рекомендуется использовать const для большей наглядности кода.
Обратите внимание: с помощью const можно объявлять константы внутри классов.

Краткое резюме

  • Константа - это неизменяемое имя со значением, доступным из любой части скрипта.
  • С PHP 7 константа может хранить массив.
  • Для объявления используйте define() или const.
  • Используйте define(), если нужно условное объявление или формирование имени через выражение.