Вы находитесь на странице: 1из 3

Лекции курса PHP7 + MySQL с нуля

(краткое содержание)

ЛЕКЦИЯ 7. КОНСТАНТЫ

Бывает так, что при разработке программы появляется необходимость


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

Предопределенные константы
В PHP выделяют ряд предопределенных констант, среди которых можно
выделить следующие:
- __FILE__
Хранит имя файла, в котором располагается используемый в настоящий
момент программный код.
- __LINE__
Хранит номер строки исполняемого в настоящий момент кода.
- __FUNCTION__
Наименование используемой в настоящий момент времени функции
- __CLASS__
Имя используемого в данный момент класса (для ООП). Стоит отметить,
что константы __CLASS__, __FUNCTION__, __LINE__, как и __FILE__, регулярно
переопределяются в зависимости от текущего момента работы скрипта.
- PHP_VERSION
Текущая версия интерпретатора PHP.
- PHP_OS
Данные об операционной системе, в которой запущен PHP.
- PHP_EOL
Символ конца строки, используемый в текущей операционной системе.
Так, для Windows это символы \r\n, для Mac OS X - \n\r, для Linux - \n.
- true (аналог – TRUE)
Константа, содержащая значение «истина».
- false (аналог – FALSE)
Противоположное true, значение «ложь».
- null (аналог – NULL)
Значение «null».

Определение константы
Константа в PHP определяется посредством конструкции define(). Синтаксис
конструкции следующий:
void define(string $name, string $value);
Разберем, что означает написанное выше.
Термин void обозначает, что непосредственно конструкция не возвращает
значения и его типа – значение и тип константы присваиваются непосредственно
ей же, но не конструкции. При написании конструкции в коде слово void опускается.
Далее следует имя конструкции define.
В скобках мы видим следующие параметры конструкции:

1
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

- string $name
Строковый параметр имени константы, которой будет присвоено
значение $value.
- string $value
Значение, присваиваемое константе с именем $name
- bool $case_sen = true
Необязательный параметр $case_sen с заранее предустановленным
значением true. Обозначается это вследствие наличия у параметра
значения по умолчанию, равного true. Суть этого параметра в следующем
– если параметр выставлен в значение true, то в дальнейшем
учитывается регистр при проверке имени константы, если же параметр
равен false, то значение имени может принимать любые формы в
регистре, например, $name = ConStanT будет эквивалентно $name =
constant.
В будущем при описании каких-либо конструкций, функций и операторов будет
использоваться подобный общепринятый синтаксис.
Кроме того, стоит добавить, что определять константу требуется именно в
строковом формате, обрамляя в кавычки. Также запрещено объявлять одну и ту же
константу два и более раз – это приведет к ошибке во время выполнения
программного кода.
Также отмечу, что правилом хорошего тона среди разработчиков считается
присвоение константам имен, содержащих только цифры и заглавные буквы
английского алфавита, а также другие разрешенные символы вплоть до символов,
содержащих код 127 и более.
Рассмотрим, как выглядит объявление константы в листинге 12.1
Листинг 7.1. Объявление констант.

define("CONST_INT", 1345); //Объявление целочисленной константы


echo CONST_INT; // На выводе значение: 1345

Проверка константы на существование


Если Вам необходимо проверить, была ли ранее определена константа, то Вы
можете воспользоваться конструкцией defined():
bool defined(string $name);
Как Вы уже догадались, параметр bool означает, что в случае, если константа
существует, конструкция defined() возвращает значение true, в противном случае –
false.

Динамические константы
Порой может возникнуть ситуация, когда константу необходимо определить в
процессе работы программы, но ее значение зависит от какой-либо переменной.
Для этого в PHP предусмотрена возможность создания динамических констант и
использования их в дальнейшем с помощью конструкции constant(). Рассмотрим ее
подробнее:
mixed constant(string $name, string $value);
Параметр mixed означает, что конструкция constant может принимать тип в
зависимости от типа $value.
Рассмотрим пример использования динамических констант в листинге 12.2.:

2
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

Листинг 7.2. Объявление динамических переменных.

$dyn_name = "Dynamic_Constant"; // Объявляем переменную, которая в дальнейшем


станет именем динамической константы
$dyn_val = 145; // Объявляем переменную, которая в дальнейшем будет значением
динамической константы
define($dyn_name, $dyn_val); // Объявляем динамическую константу
echo (constant($dyn_name)); // Выводим динамическую константу на печать: 145