Перейти к основному содержимому

Константы в PHP

Константа хранит значение почти как переменная, но с одним важным отличием: после определения её нельзя ни изменить, ни отменить.

В PHP есть два способа создать константу: функция define() и ключевое слово const.

Для имён действует простое правило: они начинаются с буквы или подчёркивания и не содержат знака $, который используют переменные.


Функция define() в PHP

define() создаёт константу во время выполнения.

Константа всегда попадает в глобальную область видимости, даже если define() вызывается внутри условного блока (if/else, циклы, функции). Однако создавать константы классов эта функция не может.

Она принимает два параметра:

  • CONSTANT_NAME — как называется константа (с учётом регистра)
  • value — что хранит константа

Создание константы с помощью define()

Здесь define() создаёт константу с именем «GREETING», а echo выводит её. Обратите внимание на отсутствие знака $:

Prompt
Напишите PHP-скрипт, который создаёт константу с именем «GREETING» со значением «Добро пожаловать в PromptCookbook!» с помощью define(), а затем выводит эту константу.
Вывод: PHP-скрипт

Константа внутри функции

Константа создаётся внутри myTest(), но код вне функции всё равно может её вывести:

Prompt
Напишите PHP-скрипт, который объявляет константу внутри функции с помощью define(), вызывает функцию, а затем выводит константу вне функции.
Вывод: PHP-скрипт

Синтаксис define()

Это общая форма вызова define():

index.php
<?php
define(CONSTANT_NAME, value);
?>

Ключевое слово const в PHP

С const константа создаётся уже во время компиляции.

Именно поэтому она должна находиться в области видимости верхнего уровня. Так использовать const внутри функций, циклов, операторов if/else или блоков try/catch нельзя.

В отличие от define(), этот способ работает и для констант классов.

Имена здесь тоже чувствительны к регистру.

Создание константы с помощью const

Та же константа «GREETING», на этот раз созданная с помощью const:

Prompt
Напишите PHP-скрипт, который создаёт константу с именем «GREETING» с помощью ключевого слова const и выводит её.
Вывод: PHP-скрипт

Синтаксис const

Это общая форма объявления const:

index.php
<?php
const CONSTANT_NAME = value;
?>

Константы-массивы в PHP

Константа не обязана хранить только одно значение. И define(), и const принимают также массивы.

Создание констант-массивов

Каждый способ создаёт по одной константе-массиву, а элементы читаются по индексу, как в любом массиве:

Prompt
Напишите PHP-скрипт, который создаёт константы-массивы с помощью define() и const, а затем обращается к элементам каждого из них.
Вывод: PHP-скрипт