PHP -константы


Константы в PHP — это идентификаторы, значение которых нельзя изменить после определения.

После определения значения константы его нельзя изменить больше нигде в скрипте.

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

Особенности констант


Константы PHP

  1. Неизменяемость: После определения константы её значение нельзя изменить.
  2. Глобальная область видимости: После определения константы её можно использовать в любом месте всего скрипта без использованияglobalключевое слово.
  3. Типы данных: Значением константы может быть скалярный тип данных (например, boolean, integer, float, string) или массив (PHP 7 и выше).
  4. Чувствительность к регистру: Имена констант по умолчанию чувствительны к регистру. Если вам нужно определить константу, нечувствительную к регистру, вы можетеdefine()установите третий параметр функции вtrue。

Константа — это идентификатор простого значения, которое нельзя изменить в скрипте.

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

Примечание:Константы можно использовать во всем скрипте.


Установка констант PHP

Чтобы задать константу, используйте функцию define(), синтаксис которой следующий:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

Функция имеет три параметра:

  • name:Обязательный параметр: имя константы, т. е. идентификатор.

  • value:Обязательный параметр: значение константы.

  • case_insensitive : Необязательный параметр. Если установить TRUE, константа будет нечувствительна к регистру; по умолчанию — чувствительна к регистру.

    Примечание:Начиная с PHP 7.3.0, определение констант, нечувствительных к регистру, устарело. Начиная с PHP 8.0.0, только false является допустимым значением; передача true вызовет предупреждение.

В следующем примере мы создаемконстанту, чувствительную к регистру(не рекомендуется после PHP 7.3), со значением константы "Welcome to example.com":

Пример

<?php //Регистрозависимое имя константы define("GREETING", "Welcome to example.com"); echo GREETING; //Вывод "Welcome to example.com" echo '<br>'; echo greeting; //Вывод "greeting", но с предупреждением, указывающим, что константа не определена. ?>

В следующем примере мы создаёмрегистронезависимую константусо значением константы "Welcome to example.com":

Пример

<?php //Регистронезависимое имя константы define("GREETING", "Welcome to example.com", true); echo greeting; //Вывод "Welcome to example.com" ?>

Константы являются глобальными

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

Следующий пример демонстрирует использование константы внутри функции; даже если константа определена вне функции, её всё равно можно использовать как обычно.

Пример

<?php define("GREETING", "Welcome to example.com"); function myTest() { echo GREETING; } myTest(); //Вывод "Welcome to example.com" ?>

Использование ключевого слова const

const CONSTANT_NAME = "value";

Ниже приведён пример определения константы с использованием ключевого слова const:

Пример

const SITE_URL = "https://www.example.com";
echo SITE_URL; // Вывод "https://www.example.com"

Предопределённые константы

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

  • PHP_VERSION: Версия текущего парсера PHP.
  • PHP_OS: Операционная система сервера.
  • PHP_INT_MAX: Максимальное целочисленное значение.
  • E_ERROR、E_WARNING、E_PARSEи т. д.: Уровни сообщения об ошибках.

Пример

echo PHP_VERSION; // Выводит версию PHP, например "7.4.1"
echo PHP_OS;      // Выводит операционную систему, например "Linux"
echo PHP_INT_MAX; // Выводит максимальное целочисленное значение, например "9223372036854775807"

Константные массивы (PHP 7 и выше)

В PHP 7 и выше константы также могут быть массивами.

Пример

define("FRUITS", [
    "Apple",
    "Banana",
    "Orange"
]);

echo FRUITS[0]; // Выводит "Apple"

Или с помощью const:

Пример

const COLORS = [
    "Red",
    "Green",
    "Blue"
];

echo COLORS[1]; // Вывод "Green"
Другие расширения