Константа это идентификатор (имя) для простого значения. Как следует из
названия, это значение не может изменяться в процессе исполнения скрипта. (’Магические
константы’ __FILE__ и __LINE__ являются исключением из этого правила, но они в действительности не являются
константами.) По умолчанию константа чувствительна к регистру символов. По
соглашению идентификаторы констант вводятся в верхнем регистре.
Имя константы соблюдает те же правила, что и любая метка PHP. Правильное имя
константы начинается с буквы (латинской) или символа подчёркивания, за
которой-ым может следовать любое количество букв, цифр или символов
подчёркивания. Как регулярное выражение, константа должна выражаться так:
[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
Примечание: здесь, для наших потребностей, буква это a-z, A-Z и ASCII-символы от 127
до 255 (0x7f-0xff).
Область видимости константы является глобальной - вы можете получать к ней
доступ в любой части скрипта, независимо от области видимости.
Вы можете получить значение константы, просто специфицировав её имя.
В отличие от переменных, вы не должны вводить перед константой символ $.
Вы можете также использовать функцию constant()
для чтения значения константы, если вы получаете имя константы динамически.
Используйте get_defined_constants()
для получения списка всех определённых констант.
Примечание: константы и (глобальные) переменные находятся в разных пространствах
имён. Это подразумевает, что, например, TRUE и $TRUE в общем случае различны.
Если вы используете неопределённую/undefined константу, PHP принимает, что
вы обозначаете имя самой константы. Уведомление/notice
будет выдано в этом случае. Используйте функцию defined(), если вы хотите знать, установлено ли значение константы.
Между константами и переменными имеются отличия:
Перед именем константы нет знака dollar ($);
Константы могут быть определены только через использование функции
define(), но не простым присвоением;
Константы могут быть определены, и доступ к ним может быть получен, в
любом месте, вне зависимости от правил области видимости переменных;
Константы не могут быть переопределены или разопределены после своего определения; и
Константы могут вычисляться только в скалярные значения.