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

Примечание :

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

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

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

 

Пример #1 Допустимые и недопустимые имена констант

<?php

// Valid constant names
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Invalid constant names
define("2FOO",    "something");

// This is valid, but should be avoided:
// PHP may one day provide a magical constant
// that will break your script
define("__FOO__", "something"); 

?>

Примечание . Для наших целей здесь используется буква az, AZ и символы ASCII от 128 до 255 (0x80-0xff).

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

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