PHP: типы констант

Предыдущая часть: “PHP: типы переменных

Константа  —  это имя или идентификатор простого значения. Ее характеристики:

  1. не может изменяться во время выполнения скрипта;
  2. по умолчанию чувствительна к регистру;
  3. в соответствии с соглашением, идентификаторы констант всегда пишутся в верхнем регистре;
  4. имя константы начинается с буквы или знака подчеркивания, за которым следует любое количество букв, цифр или знаков подчеркивания;
  5. если вы определили константу, в дальнейшем ее нельзя будет изменить.

Чтобы определить константу, нужно использовать функцию define(), а чтобы получить ее значение, нужно просто указать ее имя. В отличие от переменных, константу не обязательно обозначать символом $. Можно также использовать функцию constant() для чтения значения константы, чтобы получить ее имя в динамическом режиме.

Функция constant()

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

Пример constant()

<?php
define("MINSIZE", 50);

echo MINSIZE;
echo constant("MINSIZE"); // то же, что и предшествующая строка
?>

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

Константы и переменные

Есть 4 основных различия между константами и переменными:

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

Допустимые и недопустимые имена констант

// Допустимые имена констант 
define("ONE",     "first thing");
define("TWO2",    "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");

// Недопустимые имена констант
define("2TWO",    "second thing");

Магические константы PHP

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

Выделяют пять магических констант, которые изменяются в зависимости от того, где они используются. Например, значение __LINE__ зависит от строки, в которой она используется в скрипте. Эти специальные константы не чувствительны к регистру.

  1. __LINE__  —  текущий номер строки в файле.
  2. __FILE__  —  полный путь и имя текущего файла с развёрнутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла.
  3. __DIR__директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории.
  4. __FUNCTION__имя функции или {closure} в случае анонимной функции.
  5. __CLASS__—  имя класса. Это имя содержит название пространства имён, в котором класс был объявлен (например, Foo\Bar). При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется.
  6. __TRAIT__имя трейта. Это имя содержит название пространства имён, в котором трейт был объявлен (например, Foo\Bar).
  7. __METHOD__  —имя метода класса.
  8. __NAMESPACE__  —  имя текущего пространства имён.
  9. ClassName::class  —  полное имя класса.

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статьяСтруктуры данных: динамическое программирование
Следующая статьяРуководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis