PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.
Есть девять магических констант, которые меняют свое значение в
зависимости от контекста, в котором они используются.
Например, значение __LINE__
зависит от строки в скрипте,
на которой эта константа указана. Все магические константы разрешаются во
время компиляции, в отличие от обычных констант, которые разрешаются во
время выполнения. Специальные константы нечувствительны
к регистру и их список приведен ниже:
Имя | Описание |
---|---|
__LINE__ |
Текущий номер строки в файле. |
__FILE__ |
Полный путь и имя текущего файла с развернутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла. |
__DIR__ |
Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории. |
__FUNCTION__ |
Имя функции или {closure} в случае анонимной функции. |
__CLASS__ |
Имя класса. Это имя содержит название пространства имен, в котором класс был объявлен (например, Foo\Bar). Обратите внимание, что начиная с PHP 5.4 __CLASS__ также работает в трейтах. При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется. |
__TRAIT__ |
Имя трейта. Это имя содержит название пространства имен, в котором трейт был объявлен (например, Foo\Bar). |
__METHOD__ |
Имя метода класса. |
__NAMESPACE__ |
Имя текущего пространства имен. |
ClassName::class |
Полное имя класса (с указанием пространства имен). См. также ::class. |
Смотрите также get_class(), get_object_vars(), file_exists() и function_exists().
Версия | Описание |
---|---|
5.5.0 |
Добавлена магическая константа ::class
|
5.4.0 |
Добавлена константа __TRAIT__
|
5.3.0 |
Добавлены константы __DIR__ и __NAMESPACE__
|