Источник: Nuances of Programming
Предыдущая часть: “PHP: типы переменных”
Константа — это имя или идентификатор простого значения. Ее характеристики:
- не может изменяться во время выполнения скрипта;
- по умолчанию чувствительна к регистру;
- в соответствии с соглашением, идентификаторы констант всегда пишутся в верхнем регистре;
- имя константы начинается с буквы или знака подчеркивания, за которым следует любое количество букв, цифр или знаков подчеркивания;
- если вы определили константу, в дальнейшем ее нельзя будет изменить.
Чтобы определить константу, нужно использовать функцию 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__ зависит от строки, в которой она используется в скрипте. Эти специальные константы не чувствительны к регистру.
- __LINE__ — текущий номер строки в файле.
- __FILE__ — полный путь и имя текущего файла с развёрнутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла.
- __DIR__ — директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории.
- __FUNCTION__ — имя функции или {closure} в случае анонимной функции.
- __CLASS__ — имя класса. Это имя содержит название пространства имён, в котором класс был объявлен (например, Foo\Bar). При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется.
- __TRAIT__ — имя трейта. Это имя содержит название пространства имён, в котором трейт был объявлен (например, Foo\Bar).
- __METHOD__ — имя метода класса.
- __NAMESPACE__ — имя текущего пространства имён.
- ClassName::class — полное имя класса.
Читайте также: