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