Руководство по PHP
Пред. |  | След.

# Глава 13. Константы

Константы - это идентификаторы простых значений. Исходя из их названия, нетрудно понять, что их значение не может изменяться в ходе выполнения скрипта (исключения представляют "волшебные" константы, которые на самом деле не являются константами в полном смысле этого слова). Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.

Имя константы должно соответствовать тем же правилам, которыми руководствуются и другие имена в PHP. Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний. Регулярное выражение для проверки правильности имени константы выглядит так: `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

> Замечание: Понятие "буквы" здесь - это символы a-z, A-Z, и другие символы с ASCII-кодами от 127 до 255 (0x7f-0xff).

Как и суперглобальные переменные, константы доступны из любой области видимости. Вы можете использовать константы в любом месте вашего скрипта, не обращая внимания на текущую область видимости. Подробную информацию об областях видимости можно найти здесь.

# Синтаксис

Вы можете определить константу с помощью функции define(). После того, как константа определена, ее значение не может быть изменено или аннулировано.

Константы могут содержать только скалярные данные (логического, целого, плавающего и строкового типов).

Получить значение константы можно, указав ее имя. В отличие от переменных, вам не потребуется предварять имя константы символом `$`. Также вы можете использовать функцию constant() для получения значения константы, если вы формируете имя константы динамически. Используйте функцию get_defined_constants() для получения списка всех объявленных констант.

> Замечание: Константы и (глобальные) переменные находятся в разном пространстве имен. Это означает, что, например, `TRUE` и `$TRUE` являются совершенно разными вещами.

Если вы используете неопределенную константу, PHP предполагает, что вы имеете ввиду само имя константы, как если бы вы указали переменную типа строка (CONSTANT и "CONSTANT"). При этом будет сгенерирована ошибка типа E_NOTICE. Смотрите также главу руководства, которая разъясняет, почему $foo[bar] - это неправильно (конечно, если вы перед этим не объявили `bar` как константу с помощью define()). Если вы просто хотите проверить, определена ли константа, используйте функцию defined().

Различия между константами и переменными:

- У констант нет приставки в виде знака доллара (`$`);

- Константы можно определить только с помощью функции define(), а не присваиванием значения;

- Константы могут быть определены и доступны в любом месте без учета области видимости;

- Константы не могут быть определены или аннулированы после первоначального объявления; и

- Константы могут иметь только скалярные значения.

Пример 13-1. Определение констант

`<?php define("CONSTANT", "Здравствуй, мир."); echo CONSTANT; // выводит "Здравствуй, мир." echo Constant; // выводит "Constant" и выводит предупреждениее. ?>`

Пред. | Начало | След.
Переменные вне PHP | Уровень выше | Предопределенные константы