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