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



Книга 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  —  полное имя класса.


658   0  

Comments

    Ничего не найдено.