Константы

Содержание

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

Замечание:

До PHP 8.0.0 константам, которые определяли функцией define(), разрешалось быть нечувствительными к регистру.

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

Функция define() умеет определять константы с названиями, которые совпадают с зарезервированными словами или даже нарушают правила языка по именованию идентификаторов, при этом значение таких констант вернёт только функция constant(), но делать так не рекомендуют.

Подсказка

Смотрите также «Руководство по именованию».

Пример #1 Правильные и неправильные названия констант

<?php

// Правильные названия констант
define("FOO", "что-то");
define("FOO2", "что-то ещё");
define("FOO_BAR", "что-то большее");

// Неправильные названия констант
define("2FOO", "что-то");

// Это допустимое объявление, но константы лучше так не называть:
// константа нарушит работу скрипта, если в PHP зарегистрируют магическую константу
// с таким названием
define("__FOO__", "что-то");

?>

Замечание: Понятие «буквы» здесь — символы a-z, A-Z, и другие символы с ASCII-кодами от 128 до 255 (0x80-0xff).

Как и superglobals, константы доступны из любой области видимости. Константы разрешается использовать из любого места скрипта независимо от области видимости. Дополнительную информация об области видимости даёт раздел руководства «Область видимости переменной».

Замечание: Начиная с PHP 7.1.0 константам класса доступны объявления видимости — защищённая или закрытая, которые делают константу доступной только в иерархической области видимости класса, в котором константа определена.