Константы

Содержание

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

Замечание:

До 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, константе класса можно объявлять видимость защищенная или закрытая, делая ее доступной только в иерархической области видимости класса, в котором она определена.