Константы в PHP
Константа PHP противоположна переменной в том смысле, что после определения ее нельзя изменить.
Константы особенно полезны для определения значения, которое вы часто используете, и которое никогда не меняется. Например, вы можете определить константу INCHES_SM_METR, которая содержит количество сантиметров в метре. Поскольку эта величина, которая никогда не меняется, имеет смысл определить её как константу. И наоборот, значение, которое может измениться, например курс доллара к рублю, лучше всего определять как переменную.
Считается, что константы PHP имеют глобальную область действия. Это означает, что после того, как вы определили константу, она становится доступной из любой функции или объекта в вашем коде PHP.
Кроме того, чтобы облегчить жизнь разработчикам, PHP предоставляет ряд встроенных констант, которые доступны для использования.
Определение константы PHP
Вместо использования оператора присваивания (=)
, как мы это делали при определении переменных, константы создаются с помощью функции define()
. У констант также отсутствует префикс $
для имен переменных.
Функция определения принимает три аргумента:
define(name, value, case-insensitive)
- name — имя, которое вы хотите присвоить константе
- value — значение, которое будет сохранено в константе
- case-insensitive — определяет, является ли константа нечувствительной к регистру. По умолчанию это значение
false
, т.е. с учетом регистра.
Имена констант чувствительны к регистру. Хотя это не является обязательным требованием, соглашение, перенесенное из других языков программирования, предполагает, что имена констант следует использовать с символами верхнего регистра. В следующем примере демонстрируется использование функции define()
для указания константы с именем, чувствительным к регистру:
Пример
Попробуй сам »<?php
define("GREETING", "Добро пожаловать на wm-school.ru!");
echo GREETING;
?>
Обратите внимание, что мы не указали третий параметр при определении константы т.к. его значение по умолчанию false
, т.е. с учетом регистра.
Давайте создадим константу с именем без учета регистра:
Пример
Попробуй сам »<?php
define("GREETING", "Добро пожаловать на wm-school.ru!");
echo greeting;
?>
Проверка существования констант
Часто бывает полезно узнать, действительно ли определена константа. Этого можно добиться с помощью функции defined()
. Функция defined()
принимает имя проверяемой константы в качестве аргумента и возвращает значение true
или false
, чтобы указать, существует ли эта константа.
Например, предположим, что мы хотим узнать, определена ли константа с именем MY_FIRST_CONSTANT. Мы можем просто вызвать функцию defined()
, передавая имя, а затем протестировать результат с помощью оператора if ... else
(см. Условные операторы PHP для более подробной информации об использовании if ... else )
:
Пример
Попробуй сам »<?php
define ('MY_FIRST_CONSTANT', 'wm-school.ru');
if (defined ('MY_FIRST_CONSTANT'))
{
echo "Константа определена"; // выведет "Константа определена"
}
else
{
echo "Константа не определена";
}
?>
Результат выполнения кода:
Постоянные массивы PHP
В PHP7 вы можете создать константу массива с помощью функции defined()
:
Пример
Попробуй сам »<?php
define("fruit", [
"apple",
"pear",
"plum"
]);
echo fruit[0];
?>
Результат выполнения кода:
Глобальные константы
Константы автоматически становятся глобальными и могут использоваться во всем скрипте.
В следующем примере константа используется внутри функции не смотря на то, что она определена вне функции:
Пример
Попробуй сам »<?php
define("GREETING", "Добро пожаловать на wm-school.ru!");
function myTest() {
echo GREETING;
}
myTest();
?>
Результат выполнения кода: