Предыдущая часть: “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
— полное имя класса.
Читайте также:
- PHP 8.1 уже обещает стать одним из лучших релизов
- 12 привычек эффективного разработчика
- Топ 3 самых популярных языка программирования в 2018 году
Читайте нас в Telegram, VK и Яндекс.Дзен