array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'language.constants.php', 1 => 'Константы', ), 'up' => array ( 0 => 'langref.php', 1 => 'Справочник языка', ), 'prev' => array ( 0 => 'language.variables.external.php', 1 => 'Переменные из внешних источников', ), 'next' => array ( 0 => 'language.constants.syntax.php', 1 => 'Синтаксис', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'language/constants.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/language.constants.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Константа — идентификатор, или имя, для простого значения. Как подсказывает название, это значение нельзя изменять во время работы скрипта (кроме магических констант, которые на самом деле не относятся к константам). Константы чувствительны к регистру. По принятому соглашению, имена констант пишутся в верхнем регистре.
Замечание:
До 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 константам класса доступны объявления видимости — защищённая или закрытая, которые делают константу доступной только в иерархической области видимости класса, в котором константа определена.